programing

변수를 사용하여 data.table에 열 이름 전달

skycolor 2023. 6. 11. 10:32
반응형

변수를 사용하여 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

반응형