【发布时间】:2017-10-14 18:16:49
【问题描述】:
我创建了一个数据表df
library(data.table)
df <- data.table(id = c(1,1,1,2,2), starts = c(0,0,6,0,9), ends = c(0,6,10,9,20))
df
#id starts ends
#1: 1 0 0
#2: 1 0 6
#3: 1 6 10
#4: 2 0 9
#5: 2 9 20
我定义了一个函数'equal_0',它正在输入一个col_name,然后该函数将返回一个带有col_name == 0的数据表
equal_0 <- function(col_name){
a <- df[col_name == 0]
return(a)
}
例如equal_0(starts)等于df[starts == 0],预期结果为:
df[starts==0]
#id starts ends
#1: 1 0 0
#2: 1 0 6
#3: 2 0 9
但是,equal_0(starts) 和 equal_0("starts") 都不起作用。
错误信息是:
equal_0("starts")
#Empty data.table (0 rows) of 3 cols: id,starts,ends
equal_0(starts)
#Error in eval(.massagei(isub), x, parent.frame()) : object 'starts' not found
如何将starts 传递给函数equal_0?
【问题讨论】:
标签: r data.table