在data.tables列表中应用列方式函数

时间:2015-10-27 08:32:17

标签: r data.table

我已经阅读了带有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)]

1 个答案:

答案 0 :(得分:4)

我们使用list遍历lapply并在每个list元素中明确应用函数。

lapply(l, function(x) x[,lapply(.SD, func)])