데이터 프레임이 3 개 있습니다. ID 변수는 각 데이터 프레임의 12 번째 열에 있습니다. 필자는 모든 데이터 프레임에 걸쳐 모든 고유 ID를 포함하는 벡터 list_cc_q1
을 만들었습니다 (따라서이 벡터의 각 항목은 하나 이상의 데이터 프레임의 12 번째 열에 나타납니다).ID 변수로 데이터 프레임간에 변수 합계
는 I, 즉 ID를 포함하는 각 데이터 프레임으로부터 7 번째 열에있는 값 (따라서 v1
가 list_cc_q1
같은 길이의 것) 각 ID에 대해, 추가 벡터 v1
를 만들고자.
f1 <- function(x,y){
ifelse(length(get(y)[which(get(y)[x,12]),7])>0, get(y)[which(get(y)[x,12]),7], 0)}
g1 <- function(x){sum(sapply(ls()[1:3], function(y){ f1(x,y)}))}
v1 <- sapply(list_cc_q1, function(z){ g1(z) })
이 다음과 같은 오류를 반환 :
Error in get(y)[x, 12] : incorrect number of dimensions
Called from: which(get(y)[x, 12])
내가 코드, 간단한 방법은 대단히 도움이 될 것 overcomplicated 것 같아 여기에 내가 사용하고 코드입니다.
하지만 왜 작동하지 않습니까?
Perfect! 당신은 정확하게 이해합니다. 'ls (envir = .GlobalEnv)'와'which'에 관한 또 다른 수정을 사용하여 나의 코드를 수정했다. 하지만 코드 스 니펫은 2500 배 빠릅니다. 감사! –