我在R中创造了这个功能,一切都很好:
test<-function (x){
ma <-apply(x,2,max)
mi <-apply(x,2,min)
x2 <-data.frame(x)
for (i in 1:length(ma))
x2[,i] <- ifelse(x2[,i]==ma[i],"max",ifelse(x2[,i]==mi[i],"min","FALSE"))
print (x2)
}
如果我在新数据框中添加相同信息,我该怎么办?如何自动添加新列?
非常感谢
答案 0 :(得分:1)
您可以使用apply函数实际执行此操作:
test <- function(x) {
x2 <- apply(x, 2, function(y) {
ifelse(y==max(y), "max", ifelse(y==min(y), "min", "FALSE"))
})
return(as.data.frame(x2))
}
df = data.frame(x = c(2, 1, 3), y = c(1, 2, 3))
test(df)
# x y
# 1 FALSE min
# 2 min FALSE
# 3 max max