[英]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.