【问题标题】:Apply a column wise function in a list of data.tables在 data.tables 列表中应用列式函数
【发布时间】:2015-10-27 08:32:16
【问题描述】:

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

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    我们用lapply 循环遍历list,并在每个list 元素中应用函数列。

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

    【讨论】:

      猜你喜欢
      • 2020-11-21
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2015-09-07
      • 2019-02-13
      • 2019-12-24
      • 1970-01-01
      相关资源
      最近更新 更多