【发布时间】:2016-01-02 12:21:14
【问题描述】:
这是复制我的数据集的代码。
col1=c(20,15,NA,NA)
col2=c(30,30,6,NA)
col3=c(40,NA,7,NA)
col4=c(NA,60,8,NA)
col5=c(60,75,9,NA)
check=c(40,35,10,NA)
df=data.frame(col1,col2,col3,col4,col5,check)
我想获取大于“检查”列的列的位置。如果可能,我也想获取该列的值。
这是我创建的一个函数,它不起作用:
fun=function(x){
j1=which(x>df$check)[1]
if(is.na(j1)){
NA
}
else if (!is.na(j1)){
j1
}
}
df$test=apply(df[,1:5],1,fun)
我的最终数据框如下所示:
col1=c(20,15,NA,NA)
col2=c(30,30,6,NA)
col3=c(40,NA,7,NA)
col4=c(NA,60,8,NA)
col5=c(60,75,9,NA)
check=c(40,35,10,NA)
test=c(5,4,NA,NA)
value=c(60,60,NA,NA)
df=data.frame(col1,col2,col3,col4,col5,check, test,value)
任何帮助将不胜感激。谢谢
【问题讨论】:
标签: r function conditional apply