r - For循环根据R中的条件用NA替换值
问题描述
我正在尝试根据条件用 NA 替换值。我编写了以下代码,它工作正常:
df <- df %>%
mutate(var1 = ifelse(years > 0, NA, var1)
我需要为 80 多个不同的变量运行此代码,因此我尝试使用 for 循环(而不是复制粘贴)。我已经尝试了以下代码,但它不起作用
for(i in c(13:100))
{df <- df %>%
mutate(i = ifelse(df$years > 0, NA, i))}
理想情况下,循环的输出将存储回原始数据帧中。非常感谢,任何帮助都非常感谢!
解决方案
这应该直接工作:
df[df$years > 0, 13:100] <- NA
考虑这个小例子:
set.seed(123)
df <- data.frame(years = c(-1, 1, -3, -4, 9), var1 = rnorm(5), var2 = rnorm(5))
df
# years var1 var2
#1 -1 -0.56047565 1.7150650
#2 1 -0.23017749 0.4609162
#3 -3 1.55870831 -1.2650612
#4 -4 0.07050839 -0.6868529
#5 9 0.12928774 -0.4456620
df[df$years > 0, 2:3] <- NA
df
# years var1 var2
#1 -1 -0.56047565 1.7150650
#2 1 NA NA
#3 -3 1.55870831 -1.2650612
#4 -4 0.07050839 -0.6868529
#5 9 NA NA
推荐阅读
- android - Android 问题从 YouTube Android Player API 计算观看次数
- javascript - 无法在“RTCPeerConnection”上执行“setRemoteDescription”:无法设置远程应答 sdp
- html - 以另一个响应图像为中心的响应图像
- php - 键入后实时搜索不会删除“旧”数据
- swift - 基于 Swift 中的可选字符串属性对自定义对象数组进行排序
- python - 散景堆栈图图例不正确
- python - 从字符串中删除 '#' 注释(注释可能从字符串的中间 ta 行开始)
- angular - 在可观察对象中返回一个列表
- ruby-on-rails - 如何比较rails中的布尔值
- html - CSS 样式表无法使用 Ruby on Rails:Sprockets::Rails::Helper::AssetNotFound 错误