我有两个相同长度的列表,一个存储一些数据帧,另一个存储字符串.我正在try 弄清楚如何向每个包含字符列表中的相应值的数据帧添加一个新列.例如:

#Staring Dataframes
df1 <- data.frame(v1 = c(1,2,3),
                  v2 = c("a","b","c"))
df2 <- data.frame(v1 = c(7,8,9),
                  v2 = c("x","y","z"))

dflist <- list(df1, df2)

#List containing values to add to each dataframe
nameslist <- c('first df value', 'second df value')

#Desired output 
df1$v3 <- nameslist[1]

  v1 v2    v3
 1  a first df value
 2  b first df value
 3  c first df value

df2$v3 <- nameslist[2]

 v1 v2       v3
 7  x second df value
 8  y second df value
 9  z second df value

使用循环似乎很容易做到这一点,但是我如何使用"Apply"函数来实现这一点呢?

我try 了以下几种方法:

output <- lapply(seq_along(dflist), function(i) dflist[[i]]$test = nameslist[[i]])
#This returns a list of character vectors coresponding to nameslist
output <- mapply(function(df, name) df$test = name, dflist, nameslist)
#Returns a single character vector of the values in nameslist

我觉得上面的其中一个肯定相当接近.如果有人能在这方面提供任何指导,我们将不胜感激.蒂娅.

推荐答案

在这里用Map

Map(cbind, dflist, v3 = nameslist)

-输出

[[1]]
  v1 v2             v3
1  1  a first df value
2  2  b first df value
3  3  c first df value

[[2]]
  v1 v2              v3
1  7  x second df value
2  8  y second df value
3  9  z second df value

对于mapply,默认情况下,如果我们执行赋值<-,SIMPLIZE=TRUE也必须返回数据

mapply(function(df, name) {df$test = name;df}, dflist, nameslist, SIMPLIFY= FALSE)
[[1]]
  v1 v2           test
1  1  a first df value
2  2  b first df value
3  3  c first df value

[[2]]
  v1 v2            test
1  7  x second df value
2  8  y second df value
3  9  z second df value

R相关问答推荐

R等效于LABpascal(n,1)不同的列符号

在R中创建一个包含转换和转换之间的时间的列

R Sapply函数产生的值似乎与for循环方法略有不同

在R中使用download. file().奇怪的URL?

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

R中插入符号训练函数的中心因子和尺度因子预测

R中的哈密顿滤波

R Select()可以测试不存在的子集列

您是否可以折叠R中的重复行,同时保留基于所选列的值?

安全地测试文件是否通过R打开

基于Key->Value数据帧的基因子集相关性提取

减少雨云面之间的间距并绘制所有统计数据点

无法将条件case_when()应用于使用!!创建的新变量Mutations

如何移动点以使它们的打印不重叠

为什么将负值向量提升到分数次方会得到NaN

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

如何用不同长度的向量填充列表?

有没有办法更改ggplot2中第二个y轴的比例限制?

Data.table条件合并

根据列和行的不同组合 Select 各种单元格