【发布时间】:2021-11-30 10:47:15
【问题描述】:
我想使用ifelse 函数将新的values 赋予df 中的一组columns。真正的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
谢谢。
【问题讨论】:
-
为什么不简单地
cbind()在您运行ifelse()之后像这样:df3 <- cbind(x=df[,1], df2)您的列?
标签: r if-statement multiple-columns