繁体   English   中英

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

[英]R- Changing the Values of a dataframe depending on a condition

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

例如,如果值小于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

您可以使用:

    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
data.frame((data > 100)*1)
#  A B C D
#1 0 1 0 0
#2 0 1 1 1
data<- read.table(text = "
A B C D
99 101 99 50
90 110 110 151", header = TRUE)

for(cl in 1:ncol(data)){
  data[,cl] <- ifelse(data[,cl]>=100, 1, 0)
}
data

我们可以使用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))) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM