我有一个很大的变量/数据框列表,这些变量/数据框以易于识别的方式命名。
例如_big_list = list(runner5_data, runner11_data, runner83_data)
等等。
我想执行一个循环,我将这些数据帧中的每一个转储到一个函数中,然后它也可以获取我的参数值的名称,并将其添加为新列,例如....
最后我想把它还给一个新的清单......
place_holder_list = list()
my_funct = function(data_from_list) {
df$helpme = dQuote(data_from_list) # or something similar?
# so df$helpme = 'iris' or 'mtcars', etc
# do other stuff
return(df)
}
ex_list = list(iris, mtcars)
for (each_df in ex_list){
my_funct(each_df) #help appending to list...new column in df should be iris$helpme = 'iris'
}
答案 0 :(得分:0)
使用Map
ex_list1 <- Map(cbind, ex_list, helpme = c("iris", "mtcars"))
lapply(ex_list1, head, 2)
#[[1]]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species helpme
#1 5.1 3.5 1.4 0.2 setosa iris
#2 4.9 3.0 1.4 0.2 setosa iris
#[[2]]
# mpg cyl disp hp drat wt qsec vs am gear carb helpme
#Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4 mtcars
#Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4 mtcars
如果需要,我们可以创建一个函数来执行此操作
f1 <- function(...) {
dots <- substitute(list(...))[-1]
helpme <- unlist(sapply(dots, deparse))
lst <- list(...)
Map(cbind, lst, helpme = helpme)
}
f1(mtcars)
f1(iris, mtcars)