如果我想用-100替换数据框的所有列的所有负值以及(999,9991,9992,9996)的值,我应该怎么做。我想将其保存为新数据帧而不是同一数据帧。 在我的数据集中,我有数百列
x<-c(-1,-2,0,1,9991)
y<-c(1,2,3,4,999)
z<-c(100,101,-999,9992,9996)
data<-as.data.frame(cbind(x,y,z))
答案 0 :(得分:1)
使用lapply
替换每列中的值的解决方案。
data2 <- data
data2[] <- lapply(data2, function(x){
x[x < 0 | x %in% c(999, 9991, 9992, 9996)] <- -100
return(x)
})
data2
# x y z
# 1 -100 1 100
# 2 -100 2 101
# 3 0 3 -100
# 4 1 4 -100
# 5 -100 -100 -100