r - 如何从R中的行中删除最后的观察结果
问题描述
我有这样的数据框:
df <- data.frame("date" = c('2018','2019','2020'),
"var1" = c(21,15,47),
"var2" = c(0.24,0.43,0.87),
"var3" = c(0.23,0.35,NA),
"var4" = c(0.64,NA,NA),
"var5" = c(NA,NA,NA)
)
如何删除 NA 值之前每一行的最后两个观察值?变量date
和var1
应该是完整的。
df_want <- data.frame("date" = c('2018','2019','2020'),
"var1" = c(21,15,47),
"var2" = c(0.24,NA,NA),
"var3" = c(NA,NA,NA),
"var4" = c(NA,NA,NA),
"var5" = c(NA,NA,NA)
)
解决方案
一种方法是 for 循环:
for(i in seq(1,nrow(df))){
y <- min(which(is.na(df[i,])))
z <- max(y,which(colnames(df) == "var1") + 3)
if (!is.infinite(y)) df[i,(z-2):ncol(df)] <- NA
}
df
date var1 var2 var3 var4 var5
1 2018 21 0.24 NA NA NA
2 2019 15 NA NA NA NA
3 2020 47 NA NA NA NA
推荐阅读
- c - 编写一个基本的半金字塔图案程序
- javascript - 如何将我的猫鼬 PROMISE 链交易迁移到 ASYNC / AWAIT 流?
- android - 如何解决蓝牙连接()失败套接字可能已关闭
- php - 如何将变量类型保留在通过 ajax 发布的对象内?
- javascript - 输入数字中箭头的 Javascript 实现 - 如何使更改涉及每个项目?
- aws-api-gateway - 如何配置 AWS API Gateway 以使 User-Agent 在 X-Ray Analytics 上可用
- ios - 表格单元格中标签的 sizeToFit 函数的意外行为
- c# - 有没有办法将数组翻译成字典
- node.js - 从 .desktop 文件运行节点
- python - 如果将整个名称指定为模式,为什么 Path.rglob() 会以小写形式返回文件名?