2017-05-20 4 views
2

변수를 사용하여 열 이름을 지정하는 data.table 개체에서 열 값을 추출하고 싶습니다. 예를 들어 :data.table에서 참조로 열을 벡터로 추출합니다.

DT <- data.table(x = c(1, 2), y = c(3, 4), z = c(5, 6)) 
col <- "z" 

> is.vector(DT[, col, with = F]) 
[1] FALSE 

는 대신 data.table 개체를 반환하기 때문이다.

나는 또한 시도했다 : is.vector(DT[, (col), with = F]) 그리고 : is.vector(DT[, ..col]) 같은 결과. 나는 오류를 만드는 다른 가능성을 시도했다. 직접 변수 이름을 사용

작동 :

> is.vector(DT[[3]]) 
[1] TRUE 

내가 찾지 못했습니다 :

> is.vector(DT[, z]) 
[1] TRUE 

내가 그것을 열 위치를 사용하지만, 참조의 이름을 사용하지 해결이 post를 발견 data.table documentation에이 사례에 대한 명시적인 참조. 나는 그것을하는 쉬운 방법이라고 확신하지만 어떻게 찾지 못했습니다.

+0

는 http://stackoverflow.com/a/20043412/1412059 – Roland

+0

@Roland이 솔루션은 인덱스 위치에 의해, 지금은 실현 참조 그것에 대해 이름 참조도 작동하지만 명시 적으로 언급되지 않았습니다. –

+0

이제 나는이 해결책이 @Frank 대답에 의해 해결되었다는 것을 발견했다. [post] (http://stackoverflow.com/questions/16617226/referring-to-data-table-column-by-names-saved-in-variables? rq = 1) 문제는이 특정 문제에 대한 것이 아니었지만 그의 해결책은 내 문제도 해결합니다. –

답변

1

우리는 벡터로 열을 추출하는 [[을 사용할 수 있습니다

is.vector(DT[[col]]) 
#[1] TRUE 
+1

이제이 솔루션이 @Frank 대답으로 해결되었음을 알았습니다.이 [post] (http://stackoverflow.com/questions/16617226/referring-to) -data-table-columns-by-names-saved-in-variables? rq = 1) –