我在每列的数据框中都有数值,我想更改这些列的值。
例如,如果某个值小于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
答案 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)))