【发布时间】:2018-01-09 13:30:23
【问题描述】:
d1 <- data.frame(y1 = c("A","B","C"), y2 = c(1, 2, 3), y3 = c(4, 5, 6))
我想让所有值
我这样做了:
d2 <- ifelse(d1[,2:3] > 3, d1[,2:3], 0)
但是,它返回给我一个列表。我需要确切的数据框,但值
【问题讨论】:
-
不要使用
ifelse。就做d1[d1[2:3] < 3, 2:3] <- 0 -
ifelse应该用于原子向量,而不是整个 data.frame。 David 的评论是正确的,但您也可以使用lapply循环遍历 data.frame 的列,并对每一列(向量)运行ifelse。 -
您可能会觉得这很有帮助:stackoverflow.com/questions/47816693/…
标签: r if-statement dataframe