如何以data.table
的方式访问data.frame
中的单个单元格:
mdf <- data.frame(a = c("A", "B", "C"), b = rnorm(3), c = 1:3)
mdf[ mdf$a == "B", "c" ]
[1] 2
在data.table
上执行模拟,返回data.table,包括键列:
mdt <- data.table( mdf, key = "a" )
mdt[ "B", c ]
a c
1: B 2
mdt[ "B", c ][ , c]
[1] 2
我是否错过了参数,或者是否必须像在最后一行那样完成?
答案 0 :(得分:0)
一种方法是使用with=FALSE
,但是您必须像j
一样表达data.frame
:
R> mdt[ "B", "c", with=FALSE ]
c
1: 2
答案 1 :(得分:0)
其中任何一个都会避免重复c,但效率不高,因为它们涉及计算第一个[]以及最终答案:
> mdt[ "B", ][["c"]]
[1] 2
> mdt[ "B", ][, c]
[1] 2