为r中的列表中的多个数据帧修改列
我有12个data.frames的列表:为r中的列表中的多个数据帧修改列,r,list,dataframe,mutate,R,List,Dataframe,Mutate,我有12个data.frames的列表: m =list(X2016_kvish_1_10t, X2015_kvish_1_10t, X2014_kvish_1_10t, X2013_kvish_1_10t, X2012_kvish_1_10t, X2011_kvish_1_10t, X2010_kvish_1_10t, X2009_kvish_1_10t, X2008_kvish_1_10t) X2007_kvish_1_10t, X2006_kvish_1_1
m =list(X2016_kvish_1_10t, X2015_kvish_1_10t, X2014_kvish_1_10t,
X2013_kvish_1_10t, X2012_kvish_1_10t, X2011_kvish_1_10t,
X2010_kvish_1_10t, X2009_kvish_1_10t, X2008_kvish_1_10t)
X2007_kvish_1_10t, X2006_kvish_1_10t, X2005_kvish_1_10t)
我有一个12个向量的列表,叫做平均值
。str的输出(平均值)
:
我需要将每个向量添加到列表中每个data.frame的新列中。当我单独做时,效果很好:
X2016_kvish_1_10t$mean_values = mean_values[[1]]
X2016_kvish_1_10t$mean_values = mean_values[[2]]
X2016_kvish_1_10t$mean_values = mean_values[[3]]
# ... until 12
但我需要找到一种方法在一次拍摄中添加这些向量。
我尝试了这个功能:
for(i in 1:length(m)){m[[i]]$means = mean_values[[i]]}
这个函数非常有效,但只有当我打印整个数据帧列表时才有效。我需要找到一种方法将更改应用到原始日期框,每个日期框都是s.的,尽管不知道您为什么要这样做。。。我想我得到了你想要的 如果列表中的项目已命名,您可以尝试:
for(i in 1:length(m)){
assign(names(m)[i], m[[i]])
}
如果您的列表命名不方便,您可以这样命名:
names(m)它按您的预期工作。我刚刚在示例数据上尝试了您的代码:df1它可以工作,但更改似乎不在原始data.frames中。如何将这些更改应用于原始data.frames?我个人会将它们保留在列表中以方便使用,但如果您想将它们删除,请尝试使用-trylist2env(m,.GlobalEnv)
@michaelspect-哦,对了-您创建了m
作为未命名列表。如果你做了m=list(X2016_kvish_1_10t=X2016_kvish_1_10t,X2015_kvish_1_10t=X2015_kvish_1_10t,…)
它应该能工作。非常感谢!!!它是有效的:)我本想给你买件礼物,但我猜你住在世界的另一边:)明天见,带着我的新问题晚安我试过了,但它给了我一个错误:赋值错误(names(m)[I],m[[I]]):第一个参数无效
names(m)
的输出是什么?
for(i in 1:length(m)){
assign(names(m)[i], m[[i]])
}