我想通过另一列的相应值来分隔数据框中一列的值。只要第二列为0(零),结果就不应该是Inf
而是NA
。目前我有以下解决方案:
d<-data.frame(x=1:10, y=sample(0:1, 10, replace=TRUE))
d$z <- d$x / d$y
d[d$z==Inf,]$z<-NA
但是,有没有办法避免在第3个语句中用Inf
替换NA
,例如通过在第二个操作中使用类似条件语句的内容d$x / d$y
?
答案 0 :(得分:2)
您可以使用ifelse
对y
进行测试,然后根据该测试选择正确的操作,如下所示:
d$z<-ifelse(d$y==0, NA, d$x/d$y)