【发布时间】:2017-07-04 19:30:45
【问题描述】:
我想这样做:
例如,我有一个 data.table 为:
dt <- data.table(a=1:3, b=5:7, c=10:8)
# a b c
#1: 1 5 10
#2: 2 6 9
#3: 3 7 8
我想每次将一行的环境传递给一个函数,例如:
f <- function(a,b,c){
x <- a*b
y <- a*c
z <- a/b
return( x + y + z)
}
我知道在这种情况下我可以使用 mapply 来解决这个多元函数,但在我真正需要的时候,我有一个函数可以操纵 data.table 的几乎 150 个变量,我不知道'不想一一分配变量的名称。我也尝试了一些.SD 操作,但也没有用。
我想要一些我传递 data.table 行数的东西,并在函数内部获得对象 a、b 和 c 在 data.table 环境中。
类似的东西:
f <- function(row_id){
# set function parent env as data.table[row_id]
# and *a = data.table[row_id, a]* and successively to b and c...
x <- a*b
y <- a*c
z <- a/b
return( x + y + z)
}
【问题讨论】:
标签: r function data.table