단순 논리 대체 문제; VAR2가 NA 경우를 제외하고다른 열의 is.na에서 조건부 행 값 대체
mydf <- expand.grid(var1 = c('type1', 'type2'), var2 = c(7, 6, "NA"), var3 = 9)
내가 VAR2의 값으로 VAR3의 값을 대체하고 싶습니다 : 나는 같은 dataframe가 있습니다. 따라서 결과 var3은 7,7,6,6, NA, NA가되어야합니다. 이것려고, 나는이
mydf$var3[mydf$var2 == 7] <- 5
가 제대로 교체를 필요로 행 1 mydf의 2를 식별하고, 혼자 마지막 네 행을 잎 통지, 그래서 VAR3 = 5,5,9,9를 얻을, 9,9. 그러나 시도해 보면
mydf$var3[!is.na(mydf$var2)] <- 5
나는 var3 = 5,5,5,5,5,5를 얻습니다. 왜 var2가 NA가 아닌 마지막 두 행을 건너 뛰지 않았습니까? 다음 문제는 대체 값을 상수 대신 var2로 가져 오는 방법을 모르는 것입니다. 시도 할 때
mydf$var3[!is.na(mydf$var2)] <- mydf$var2
나는 var3 = 1,1,2,2,3,3을 얻습니다. 나는 전혀 이해하지 못한다.
당신의''NA ''는''var2'를 인자로 만들고 있습니다.''mydf $ var3 [! is.na (mydf $ var2)] <- mydf $ var2가 필요합니다. na (mydf $ var2)]'같은 길이로 벡터를 교체해야합니다. – user20650
"new var3은 7,7,6,6, NA, NA"*이어야합니다. 7,7,6,6,9,9를 의미합니까? – user20650
예, 저의 실수는 7,7,6,6,9,9 여야합니다. 위의 솔루션은 훌륭하게 작동합니다. 1,1,2,2,3,3은 어디에서 왔습니까? – marcel