【发布时间】:2019-10-09 18:04:07
【问题描述】:
我有一个包含两个数据框的列表:
sample_list <- list("tables" = data.frame(weight = sample(1:50, 20, replace = T)),
"chairs" = data.frame(height = sample(1:50, 20, replace = T)))
我想使用lapply 对该列表中的所有数据框运行一个函数。在每个函数的输出中,我需要用源数据框的名称创建另一列(参见mutate):
lapply(sample_list, function(x) {
x %>%
filter(x >= 20) %>%
mutate(groupName = names(x))
})
出于某种原因,我不知道如何进行这项工作。如何将数据框的名称传递给 mutate?现在它正在返回该数据框中第一列的名称,而不是数据框本身的名称。
谢谢!
【问题讨论】:
-
使用
Map(包装到mapply):Map(function(df, nm) df %>% ... mutate(groupName = nm), sample_list, names(sample_list))
标签: r