我已经读取了一个包含带有 lapply
函数的 Excel 文件的文件夹,现在有一个包含 data.tables 的列表。各个 data.tables 具有不同的维度和列名。
现在我必须在此列表上应用一系列函数来清理它。我卡住的地方是:如何在此列表中的每个 data.table 上应用按列函数?
library(data.table)
# make a list of data.tables
set.seed(123)
dt = data.table(x = runif(10), y = runif(10))
dt2 = data.table(a = runif(10), y = runif(10), z = runif(10))
l = list(dt, dt2)
names(l) = c("dt", "dt2")
# sample function to be applied
func = function(x) {
y = x * 2
}
# how it would work for an invidual data.table
dt[, lapply(.SD, func)]
最佳答案
我们使用 lapply
遍历 list
并在每个 list
元素中按列应用函数。
lapply(l, function(x) x[,lapply(.SD, func)])
关于r - 在 data.tables 列表中应用列函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363065/