2013-05-21 2 views
3

의 단일 셀/서브 세트 열은 어떻게 data.frame의 방법으로 data.table에서 단지 하나의 셀에 액세스 할 수 있습니다액세스는 data.table

mdf <- data.frame(a = c("A", "B", "C"), b = rnorm(3), c = 1:3) 
mdf[ mdf$a == "B", "c" ] 
[1] 2 

data.table A의 아날로그를하는

mdt <- data.table(mdf, key = "a") 
mdt[ "B", c ] 
    a c 
1: B 2 

mdt[ "B", c ][ , c] 
[1] 2 

내가 매개 변수를 놓친 건가하거나 마지막 줄에서와 같이 수행해야합니다 않습니다 data.table 키 컬럼 (들)을 포함하여 반환?

답변

0

어느하지만 그들은 포함하기 때문에 효율적 없습니다 제 []뿐만 아니라 최종 답변 계산 :

> mdt[ "B", ][["c"]] 
[1] 2 
> mdt[ "B", ][, c] 
[1] 2 
+0

"B"뒤에 나오는 쉼표는 필요하지 않습니다. 세 번째 방법은'mdt [ "B"] $ c'입니다. – Frank

0

한 가지 방법은 with=FALSE을 사용하는 것입니다,하지만 당신은 data.frame 당신이하는 것처럼 j을 표현해야합니다 :는 C를 반복하지 않도록한다 이들의

R> mdt[ "B", "c", with=FALSE ] 
    c 
1: 2 
+0

좋은 점, 그러나 반환 값은 여전히 ​​하나의 셀 data.table' '일 것이다. – Beasterfield