qoiqpwqr 发表于 2014-12-19 21:04 
把您和jgchen1966二位高人的方法结合了一下,把您的方法变成了用变量名来做,但是我觉得改的有点复杂,请问有没有更简洁的方法,多谢!
a <- apply(df, 1, function(x) x[which(colnames(df) == "z")] > min(x[c(which(colnames(df) == "x"), which(colnames(df) == "y"))]))
b <- apply(df, 1, function(x) ifelse(x[which(colnames(df) == "x")] <= x[which(colnames(df) == "y")], which(colnames(df) == "x"), which(colnames(df) == "y")))
df[cbind(1:nrow(df), b)[a, ]] <- df[a, "z"]