首页 > 解决方案 > 将行作为参数的应用函数应用于 data.table 中的每一行

问题描述

我有一个 data.table dt = structure(list(x = 1:3, y = 3:5), .Names = c("x", "y"), row.names = c(NA, -3L), class = c("data.table", "data.frame"))

另外,我有一个给定的函数,它以行和数据集作为参数。例如,让

function_sum <- function(i, dataset){
  x <- as.numeric(dataset[i,1])
  y <- as.numeric(dataset[i,2])
  x+y
}

我需要将此函数应用于我的数据集中的每一行,但不知道该怎么做。

它不起作用 dt[, function_sum(i=.SDrow, dataset=dt), by = seq_len(nrow(dt))]

标签: rdatatable

解决方案


使用您的function_sum()功能:

sapply(1:nrow(dt), function(i) function_sum(i,dt))
#[1] 4 6 8

推荐阅读