d1 <- data.frame(y1 = c("A","B","C"), y2 = c(1, 2, 3), y3 = c(4, 5, 6))
我想制作所有值&lt; 3到零。
我这样做了:
d2 <- ifelse(d1[,2:3] > 3, d1[,2:3], 0)
但是,它会返回一个列表。我需要确切的数据帧,但值为&lt; 3为零。
答案 0 :(得分:0)
这应该可以解决问题:
d1[, 2:3] <- lapply(d1[, 2:3], function(x) ifelse(x < 3, 0, x))
> d1
y1 y2 y3
1 A 0 4
2 B 0 5
3 C 3 6