data.table 按包含列名的变量进行子集化
data.table subsetting by variable containing a column name
我有一个数据table,其列名是事先不知道的
set.seed(1)
titles <- rep(letters[sample.int(3,replace = T)],2)
dt <- data.table( x = c(1, 1, 3, 1, 3, 1), y = c(1, 2, 1, 2, 1, 2) )
dt = dcast(dt, x+y ~ titles, fill=0, value.var = 'x')
> dt
x y a b
1: 1 1 1 0
2: 1 2 1 2
3: 3 1 0 2
我想删除最后一列为 0 的行,但 'subset' 不起作用。为什么?
dt <- subset( dt, last(titles) > 0 )
我更喜欢使用 data.table 方法。
我们可以使用get
dt[get(last(titles))!=0]
我有一个数据table,其列名是事先不知道的
set.seed(1)
titles <- rep(letters[sample.int(3,replace = T)],2)
dt <- data.table( x = c(1, 1, 3, 1, 3, 1), y = c(1, 2, 1, 2, 1, 2) )
dt = dcast(dt, x+y ~ titles, fill=0, value.var = 'x')
> dt
x y a b
1: 1 1 1 0
2: 1 2 1 2
3: 3 1 0 2
我想删除最后一列为 0 的行,但 'subset' 不起作用。为什么?
dt <- subset( dt, last(titles) > 0 )
我更喜欢使用 data.table 方法。
我们可以使用get
dt[get(last(titles))!=0]