r - 根据下一个 R 替换 df 中的值
问题描述
我有一个这样的df
missing_1 missing_4 missing_5
1: 7dzx
2: 7dzxALA1085 ALA 1085
3: 7dzxALA1085ALA1085 ALA 1085
4: 7dzx
5: 7dzxALA156 ALA 156
6: 7dzxALA156ALA156 ALA 156
当 missing_4 和 missing_5 为空时,我想用该列中的以下值替换该值。所以它应该变成:
missing_1 missing_4 missing_5
1: 7dzx ALA 1085
2: 7dzxALA1085 ALA 1085
3: 7dzxALA1085ALA1085 ALA 1085
4: 7dzx ALA 156
5: 7dzxALA156 ALA 156
6: 7dzxALA156ALA156 ALA 156
我正在考虑一个 for 循环,但我没有足够的技能来实现它。谢谢!
解决方案
我们可以fill
使用tidyr
library(dplyr)
library(tidyr)
df1 %>%
fill(c(missing_4, missing_5), .direction = "updown")
-输出
missing_1 missing_4 missing_5
1: 7dzx ALA 1085
2: 7dzxALA1085 ALA 1085
3: 7dzxALA1085ALA1085 ALA 1085
4: 7dzx ALA 156
5: 7dzxALA156 ALA 156
6: 7dzxALA156ALA156 ALA 156
数据
df1 <- structure(list(missing_1 = c("7dzx", "7dzxALA1085", "7dzxALA1085ALA1085",
"7dzx", "7dzxALA156", "7dzxALA156ALA156"), missing_4 = c(NA,
"ALA", "ALA", NA, "ALA", "ALA"), missing_5 = c(NA, 1085L, 1085L,
NA, 156L, 156L)), class = c("data.table", "data.frame"), row.names = c(NA,
-6L)
推荐阅读
- pyspark - 当源表的一行中的多个列与目标表中单行的相同列匹配时,从目标 spark delta 表中删除一行
- postgresql - postgres 服务器在本地主机上运行,但 postico、metasploit 无法访问它
- html - 网页在多种分辨率下占据 100% 屏幕的最佳方式
- java - 带有rabbitmq的Spring websocket - 在订阅级别添加安全性
- r - 从不同文件夹导入文件,添加从每个文件名中提取的值的列?
- javascript - 使用下拉模式中的模态反应 CTA
- python - 似乎无法导入 SequentialTaskSet
- mysql - 不使用主键时如何防止更新/删除 MySQL 记录?
- c# - 如何保留第一组值的值并从列表中删除所有其他值
- ios - 因此,如何使 DispatchGroup 与 DispatchQueue 一起工作?