Convert negative values to zero in dataframe in R

后端 未结 5 1966

I have a dataframe in R that I would like to convert all columns (outside the ids) from negative to zero

id1  id2  var1  var2  var3
-1   -1   0     -33     5         


        
5条回答
  •  借酒劲吻你
    2021-01-05 01:38

    There might be fancier or more compact ways, but here's a vectorised replacement you can apply to the var columns:

    mytable <- read.table(textConnection("
    id1  id2  var1  var2  var3
    -1   -1   0     -33     5
    -1   -2   9     -10    -1"), header = TRUE)
    
    mytable[, grep("^var", names(mytable))] <- 
        apply(mytable[, grep("^var", names(mytable))], 2, function(x) ifelse(x < 0, 0, x))
    mytable
    ##    id1 id2 var1 var2 var3
    ##  1  -1  -1    0    0    5
    ##  2  -1  -2    9    0    0
    

提交回复
热议问题