我想用的ifelse功能屬性,新values的一組columns中df。實df數 >200 columns,所以我不能說明 的名稱columns,相反,我需要指定columns(例如2:205)的間隔。
df <- data.frame(x=c(123, 121, 120, 124, 125), y=c(1, 0, 0, 0, 1), z=c(0,0, 0, 0, 1))
df
x y z
1 123 1 0
2 121 0 0
3 120 0 0
4 124 0 0
5 125 1 1
但是,當我指定列的間隔時,column會跳過第一個。我怎樣才能保持第一個column不變?
df2 <- as.data.frame(ifelse(df[2:3] == 1, 2, 0))
df2
y z
1 2 0
2 0 0
3 0 0
4 0 0
5 2 2
謝謝。
uj5u.com熱心網友回復:
最簡單的解決方案是使用您當前的代碼,但使用以下命令將您的輸出重新分配給原始資料的相同子集df[2:3]<-function(df[2:3]):
df2<-df
df2[2:3]<- as.data.frame(ifelse(df[2:3] == 1, 2, 0))
df2
x y z
1 123 2 0
2 121 0 0
3 120 0 0
4 124 0 0
5 125 2 2
或者我們可以使用 dplyr:
library(dplyr)
df %>% mutate(across(2:3, ~ifelse(.x==1, 2, 0)))
x y z
1 123 2 0
2 121 0 0
3 120 0 0
4 124 0 0
5 125 2 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/371055.html
上一篇:“if-else”陳述句的問題
