r - 将列中的 NA 值更改为前面的值,直到出现其他二进制数
问题描述
我有一个看起来像这样的数据:
SN TimeStamp MOTOR
1 1/27/20 18:00 0
2 1/27/20 18:01 NA
3 1/27/20 18:02 1
4 1/27/20 18:03 NA
5 1/27/20 18:04 0
6 1/27/20 18:05 1
7 1/27/20 18:06 NA
8 1/27/20 18:07 NA
9 1/27/20 18:08 0
基本上,我的问题是如何将 NA 值更改为其主值?我的意思是对于第 2 行的 NA,答案将与之前的第 1 行相同,即 0。对于第 7 行和第 8 行的 NA,答案将是第 6 行的答案,即 1。对于第 4 行的 NA,值将替换为第 3 行中的数字,即 1。
可以这样编程吗?
如果有人能提供帮助,我将不胜感激。
谢谢。
解决方案
你可以试试
while(any(is.na(df$MOTOR))
{
na_entries <- which(is.na(df$MOTOR))
df$MOTOR[na_entries] <- df$MOTOR[na_entries - 1]
}
推荐阅读
- node.js - 如何将 Blob 从 MYSQL 转换为 base64
- github - 如何使来自 fork 的 PRs 默认指向 fork 而不是原来的?
- google-sheets - 我可以在别人的工作表上使用 api 调用吗?
- java - 在 ForkJoin 池中使用 join() 运算符是一种好习惯吗(闻起来像“阻塞代码”)
- python - 我如何刮掉这个标签?
- python - 使用 numpy 计算范围内列表值的出现次数
- shiny - 数据表中的回调
- javascript - 如何在 React.js 中使用 morris.js?
- java - 休眠为什么 IN 子句中的连接字符串的 setParameter 不起作用
- java - 如何为给定的整数数组列表值执行逆金字塔?在安卓中