我有一个包含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)
我有一个名为mean_values
的12个向量的列表。 str(mean_values)
的输出:
List of 12
$ : Named num [1:168] 2848 2848 2848 2848 2848 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 2870 2870 2870 2870 2870 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 2911 2911 2911 2911 2911 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3422 3422 3422 3422 3422 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : NULL
$ : Named num [1:168] 2747 2747 2747 2747 2747 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3234 3234 3234 3234 3234 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3334 3334 3334 3334 3334 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3440 3440 3440 3440 3440 3440 3440 3440 3440 3440 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3327 3327 3327 3327 3327 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3440 3440 3440 3440 3440 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
$ : Named num [1:168] 3497 3497 3497 3497 3497 ...
..- attr(*, "names")= chr [1:168] "a" "a" "a" "a" ...
我需要将每个向量添加到列表中每个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]]}
这个功能效果很好,但只有当我打印整个数据帧列表时才有效。我需要找到一种方法将更改应用于原始日期框架,每个日期框架。
答案 0 :(得分:0)
尽管不知道你为什么要这么做......我想我得到了你想要的东西。
如果您的列表中的项目已命名,您可以尝试:
for(i in 1:length(m)){
assign(names(m)[i], m[[i]])
}
如果您的列表名称不方便,您可以这样命名:
names(m) <- ls()[grep(pattern = 'kvish', x = ls(), ignore.case = TRUE)]
如果你的数据帧是你记忆中名称中只有kvish
的唯一对象,那么这将有效。
但是你必须小心名字的顺序。检查ls()[grep(pattern = 'kvish', x = ls(), ignore.case = TRUE)]
的输出,看看它是否与列表的数据帧的顺序相同。