나는 데이터 테이블 my.data.table
과 문자 벡터 i
(길이가 1)을 가지고 my.data.table
의 열 이름에 해당합니다. i
을 사용하여 data.table
또는 data.frame
이 아닌 벡터로 my.data.table
의 해당 열을 추출하고 싶습니다.= TRUE를 사용하여 벡터를 반환하는 경우
어떻게하면됩니까?
> my.data.table <- data.table(a=1:2,b=2:3)
> i <- "a"
> class(my.data.table[,i,with=FALSE])
[1] "data.table" "data.frame"
> as.vector(my.data.table[,i,with=FALSE]) ##does not work
a
1: 1
2: 2
> is.vector(as.vector(my.data.table[,i,with=FALSE])) ##strange behavior
[1] FALSE
>
나는 with=FALSE
과 j
에서 eval(i, <env>)
를 사용하여이 작업을 수행 할 수있는 방법이 생각하지만 난 그것을 알아낼 수 없습니다.
'my.data.table [[i]]'? – Marius
@ 마리우스는 단일 열에 적합합니다. 'is.vector'는 x가 이름 이외의 다른 속성을 가지지 않는 지정된 모드의 벡터 인 경우 TRUE를 반환합니다. 그렇지 않으면 FALSE를 리턴합니다. data.tables 및 data.frames는 모두 목록이므로 많은 특성을 갖는 벡터 – mnel
[여기] (http://stackoverflow.com/questions/1169456/in-r-what-is-the-difference-between-the 참조) -와 -에 대한 설명 -에 대한 설명 - 일단 당신이 '['와'[[''이 문제는 훨씬 쉽게 다루기 쉬워진다. – Marius