R-根据条件更改数据帧的值

时间:2017-08-30 16:09:48

标签: r

我在每列的数据框中都有数值,我想更改这些列的值。

例如,如果某个值小于100则必须为0,如果该值大于100,则必须为1.

data<- read.table(text = "
A B C D
99 101 99 50
90 110 110 151", header = TRUE)

然后这就变成了

A B C D
0 1 0 0
0 1 1 1

4 个答案:

答案 0 :(得分:3)

您可以使用:

    data<- read.table(text = "
                 A B C D
              99 101 99 50
              90 110 110 151", header = TRUE)

   dat <- ifelse(data>100 , 1, 0)
   dat
          A B C D
     [1,] 0 1 0 0
     [2,] 0 1 1 1

答案 1 :(得分:2)

data.frame((data > 100)*1)
#  A B C D
#1 0 1 0 0
#2 0 1 1 1

答案 2 :(得分:1)

*Main> findN 0
Just 0
*Main> findN 1
Just 1
*Main> findN 2
Nothing
*Main> findN 3
Just 2
*Main> findN 4
Nothing
*Main> findN 5
Nothing
*Main> findN 6
Just 3
*Main> findN 55
Just 10

答案 3 :(得分:1)

我们可以使用tidyverse

library(tidyverse)
data %>%
    mutate_all(funs(+(.>100)))
#  A B C D
#1 0 1 0 0
#2 0 1 1 1

base R

data[]  <- lapply(data, function(x) +(x > 100))

@lmo建议的其他选项包括

data[] <- +sapply(data, `>`, 100) 
vapply(data, `>`, 100, FUN.VALUE= numeric(nrow(data)))