반응형
변수를 사용하여 data.table에 열 이름 전달
중복 가능성:
data.table에서 필드를 가변으로 선택/할당
다음 예제에서는 열 이름이 'x'와 'v'인 데이터 테이블을 만들고 있습니다.
library('data.table')
DT <- data.table(x = c("b","b","b","a","a"), v = rnorm(5))
다음을 통해 열 'x'의 값에 액세스할 수 있습니다.
DT[ , x]
# [1] "b" "b" "b" "a" "a"
하지만 변수를 통과하여 액세스하려면 작동하지 않습니다.
temp <- "x"
DT[ , temp]
# [1] "x"
여러 개의 열이 있으며 그 중 몇 개에 대해서만 값을 선택해야 합니다.이 열 이름들은 R 모듈을 통해 제공될 것입니다.
괜찮아요, 알았어요. 그래야 할 것 같아요.
DT[ , get(temp)]
사용quote()
그리고.eval()
변수를 전달하는 함수j
이렇게 할 때는 열 이름에 큰따옴표를 붙일 필요가 없습니다.quote()
-ed 문자열은 내부에서 평가됩니다.DT[]
temp <- quote(x)
DT[ , eval(temp)]
# [1] "b" "b" "b" "a" "a"
단일 열 이름을 사용하면 결과가 벡터가 됩니다.data.table 결과 또는 여러 열을 원하는 경우 목록 양식을 사용합니다.
temp <- quote(list(x, v))
DT[ , eval(temp)]
# x v
# 1: b 1.52566586
# 2: b 0.66057253
# 3: b -1.29654641
# 4: a -1.71998260
# 5: a 0.03159933
언급URL : https://stackoverflow.com/questions/12603890/pass-column-name-in-data-table-using-variable
반응형
'programing' 카테고리의 다른 글
새 줄 없이 C를 삽입합니다. (0) | 2023.06.11 |
---|---|
Python Regex가 그룹을 즉시 대체 (0) | 2023.06.11 |
*(uint32_t*) 식을 이해하지 못함 (0) | 2023.06.11 |
문자열을 16진수 바이트로 인쇄 (0) | 2023.06.11 |
DateTimeFormat 옵션을 가져오는 방법 (0) | 2023.06.11 |