如何在R中的选择列中应用条件

时间:2015-08-27 01:30:29

标签: r

我有一个名为cc的数据框。我想应用if条件将值大于50的值更改为50且零以下仅在选择列中为零(即仅限于第3列和第4列)。我尝试过这样做,但无法得到我需要的东西。

CC

 s.no       A        B       C       
    1         Inf     Inf      999.9
    2        -0.43    30       23
    3         34      -2       233   

mycode

 if (cc[,3:4]>50){
      cc[,3:4]<-50
       }

if (cc[,3:4]<0){
      cc[,3:4]<-0
       }

我想要的结果:

        s.no       A        B       C       
        1         Inf     50       50
        2        -0.43    30       23
        3         34      0        50  

1 个答案:

答案 0 :(得分:1)

喜欢这个吗?

cc[,3:4] <- sapply(cc[,3:4], function(col) ifelse(col>50,50,ifelse(col<0,0,col)))
cc
#   s.no     A  B  C
# 1    1   Inf 50 50
# 2    2 -0.43 30 23
# 3    3 34.00  0 50