有一个数据帧(df)和一个数据帧列表(df1,df2 ..), 我想用列表中的每个df来封装df并存储在新列表中。
50个数据帧列表
mylist # List of 50 elements
另一个基本数据帧
single_data
我创建了一个空列表
my_dfs = list()
我想将single_data绑定到列表中的每个数据帧
for (i in 1:length(mylist)){
my_dfs[[i]] <- rbind(single_data, mylist$`i`)
}
但是没有发生rbind,single_data有5000行,而mylist数据帧各有5000行,但是my_dfs [[i]]只有5000行。 如果我单独执行而不是循环运行,那么它就起作用了。
my_dfs1 <- rbind(single_data, mylist$`1`)
my_dfs2 <- rbind(single_data, mylist$`2`) …
我除了循环工作。
答案 0 :(得分:3)
我们可以使用lapply
来遍历list
元素的rbind
和list
与“ {single_data””
mylistnew <- lapply(mylist, function(x) rbind(single_data, x))
如果我们使用for
循环,请使用[[
而不是$
。另外,最好使用seq_along
而不是1:length
my_dfs <- vector('list', length(mylist))
for (i in seq_along(mylist)){
my_dfs[[i]] <- rbind(single_data, mylist[[i]])
}