데이터 프레임의 각 행에 대해 세 번째 열의 값에 따라 값을 한 열에서 다른 열로 복사하려고합니다. 열의 값에 따라 다른 열의 값 가져 오기
나는 루프 및 경우 결합 기능을 수행하려고 :## example
condition <- c("1","2","2","1","2","","3","3")
SZ01 <- c("1","1","1","1","1","","1","1")
SZ02 <- c("2","2","2","2","2","","2","2")
SZ03 <- c("3","3","3","3","3","","3","3")
df <- data.frame(cbind(condition,SZ01,SZ02,SZ03), stringsAsFactors = FALSE)
df$retribution <- NULL
df$special_prevention <- NULL
df$general_prevention <- NULL
for (i in 1:length(df$condition)){
if (df$condition[i] == 1){
df$retribution[i] <- df$SZ01[i]
df$special_prevention[i] <- df$SZ02[i]
df$general_prevention[i] <- df$SZ03[i]
}else if (df$condition[i] == 2) {
df$retribution[i] <- df$SZ02[i]
df$special_prevention[i] <- df$SZ03[i]
df$general_prevention[i] <- df$SZ01[i]
}else if (df$condition[i] == 3) {
df$retribution[i] <- df$SZ03[i]
df$special_prevention[i] <- df$SZ01[i]
df$general_prevention[i] <- df$SZ02[i]
} else {
df$retribution[i] <- "missing_condition"
df$special_prevention[i] <- "missing_condition"
df$general_prevention[i] <- "missing_condition"
}
}
이 (오류 메시지)를 작동하지 않을 것 같다,하지만 내 데이터를보고하는 것은 뭔가 잘못이 있어야합니다.
예를 들어 행 1은 condition == 1
입니다. 즉,이 행의 경우 df$retribution
은 행 1의 값과 동일한 값을 df$SZ01
에 수신해야합니다.
하지만 그렇지 않습니다. 내가 만든 실수를 볼 수있는 사람이 있습니까?
당신이 당신의 초기 data.frame의 및 원하는 출력의 예를 추가 할 수 있습니까? – thepule
당신에게 더 이해가됩니까? 불행히도 내가 어떻게 테이블에 텍스트를 추가할지 모르겠다. – Mathias
테이블을 추가하고 싶다면'dput (df)'명령의 결과를 붙여 넣기 만하면된다. 여기서 'df'는 원하는 데이터 프레임이다. 표시 할 수 있습니다. – thepule