我正在尝试使用其他列中的值根据另一列中的条件在数据框中添加一个字段。带多列的Sapply操作
df <- data.frame(condition= c("startBin>7 & startBin<=12 & endBin>25 & endBin<=30","(startBin<=7 | startBin>12) & (endBin<=25 | endBin>30)","(startBin>7 & startBin<=12) & (endBin<=25 | endBin>30)","(startBin<=7 | startBin>12) & endBin>25 & endBin<=30"),
startBin = c(1,1,1,1), endBin = c(26,26,26,26), exprTemp=c("One","Two","Three","Four"))
如果满足“条件”列中的条件,我想创建一个值为1的“检查”列。因此,我想更新的数据帧为:
df <- data.frame(condition= c("startBin>7 & startBin<=12 & endBin>25 & endBin<=30","(startBin<=7 | startBin>12) & (endBin<=25 | endBin>30)","(startBin>7 & startBin<=12) & (endBin<=25 | endBin>30)","(startBin<=7 | startBin>12) & endBin>25 & endBin<=30"),
startBin = c(1,1,1,1), endBin = c(26,26,26,26), exprTemp=c("One","Two","Three","Four"), check=c(0,0,0,1))
注意查收的值为1,用于其条件为真的最后一个记录。
我试过如下:
df$check <- eval(parse(text=paste0("ifelse(",df$condition,",1, '')",sep="")),df)
但作为EVAL评估只有最后一个条件,它返回检查= 1的所有行。
这真的不清楚你想达到的目标。 – Haboryme
更新时间了解更多详情 – Gaurav
各行的条件不同。我想我必须使用字符串,因为这个脚本建立了一个软件用来估计模型的文件。 – Gaurav