r - 在 data.tables 列表中应用列函数

标签 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)]

最佳答案

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

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

关于r - 在 data.tables 列表中应用列函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363065/

相关文章:

r - 如何使用 data.table 获取 na.omit 以仅省略每列中的 NA

r - 从 data.tables 绘制直方图时,maxn 不是此 j 列长度的精确倍数

r - 数字向量和 data.table 中的索引

r - Max by Group with Condition for a data.table

r - 将新变量添加到数据框中的特定位置

r - 向矩阵错误添加新列

r - 如何按顺序逐行更新

r - 根据 data.table 中特定列的多个条件标记行

r - 将字符串列拆分为 2 列,一列是数字,另一列是日期

r - 检查字符串是否包含数字和破折号