为r中的列表中的多个数据帧修改列

为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

我有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_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?我个人会将它们保留在列表中以方便使用,但如果您想将它们删除,请尝试使用-try
list2env(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]])
}