r - 如何用R中以前的非零数据行填充缺失的数据行?
问题描述
我有一个缺少一些数据行的数据框,我必须用前一个非零行(在 B 和 C 列中)填充它,并在(D 列)中填充零。
A B C D
1 2020-01-03 4.25 4.5 250k
2 2020-01-04 na na na
3 2020-01-05 4 4 150k
4 2020-01-06 na na na
5 2020-01-07 na na na
6 2020-01-07 4.5 3 78k
预期产出
A B C D
1 2020-01-03 4.25 4.5 250k
2 2020-01-04 4.25 4.5 0
3 2020-01-05 4 4 150k
4 2020-01-06 4 4 0
5 2020-01-07 4 4 0
6 2020-01-07 4.5 3 78k
解决方案
library(tidyr)
library(dplyr)
df %>% fill(c(B, C), .direction = "down") %>%
mutate(D = ifelse(is.na(D), 0, D))
A B C D
1 2020-01-03 4.25 4.5 250k
2 2020-01-04 4.25 4.5 0
3 2020-01-05 4.00 4.0 150k
4 2020-01-06 4.00 4.0 0
5 2020-01-07 4.00 4.0 0
6 2020-01-07 4.50 3.0 78k
使用的输入
df <- structure(list(A = c("2020-01-03", "2020-01-04", "2020-01-05",
"2020-01-06", "2020-01-07", "2020-01-07"), B = c(4.25, NA, 4,
NA, NA, 4.5), C = c(4.5, NA, 4, NA, NA, 3), D = c("250k", NA,
"150k", NA, NA, "78k")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
推荐阅读
- netlogo - Netlogo,将变量分配给邻居
- php - 外键记录多条时,如何显示一次用户信息?
- spring-boot - 如何使用 MockMVC 和 StandaloneSetup 而没有 WebApplicationContext 测试 Thymeleaf?
- html - 如何在滑块圆形复选框中集成链接
- javascript - 如何在基于 Firebase 查询的规则中按包含字符串的 orderByChild 进行过滤
- spi - stm32F1 dma关于spi循环模式传输数据量
- c# - 当类型派生自同一接口时合并可观察序列
- arduino - 模拟写入未设置 0V
- javascript - 向下滚动时粘滞文本
- java - 如何正确添加接口作为构造函数参数?