根据R中的条件更改数据

时间:2014-01-07 18:07:04

标签: r

我之前已经发布了一个类似的问题并得到了一个快速回答,但我只是一个 R 初学者,并且无法根据我的需要进行调整。

基本上我想采用下面的代码(如果Date_Index介于两个数字之间,并且df是&lt; X,然后将df变为Y),那么使它只适用于符合特定条件的条目,即:< / p>

HAVE:df[df$Date_Index >= 50 & df$Date_Index <= 52 & df < .0000001]=1

ADD:if df$Date_Index <= 49 AND df = 0.00 ignore the above statement, else execute:

换句话说,我需要等同于if,then,else子句。如果Date_Index <= 49 and df = 0,请单独留下,否则如果Date_Index >=50 and Date Index <= 52 and df < .001则将数据(在日期索引行50-52中)替换为1.

这个(简单的)数据集应该足够说明:

xx <- matrix(0,52,5)
xx[,1]=1
xx[,3]=1
xx[,5]=1
xx[50:52,]=0
xx[,1]=1:52
xx[50,3]=1

所以我想要的是第2列和第4列保持全0,但第3列和第5列的底部继续全部为1。

1 个答案:

答案 0 :(得分:0)

我想你正在寻找这个:

xx[xx[,1] >= 50 & xx[,1] <= 52, c(FALSE, !colSums(!xx[xx[,1] <= 49, -1]))] <- 1