替换数据框的每列的特殊值

问题描述 投票:0回答:1

如果我想用-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))
r if-statement dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.