我在每列的數據框中都有數字值,我想要更改這些列的值。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
我在每列的數據框中都有數字值,我想要更改這些列的值。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
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
data.frame((data > 100)*1)
# A B C D
#1 0 1 0 0
#2 0 1 1 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)))
另外'dat [] < - + sapply(dat,\>>''100)''或'vapply(dat,\'> \',100,FUN.VALUE = rep(0,nrow(dat))) ' – lmo
您可以使用此:
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
'DAT [] < - 作爲。整數(數據> 100)'會工作。 – lmo