r - 填写表(R)中缺失的枚举值
问题描述
我想在表格的一列中填写缺失值。在列combName
中,值应该上升到20-400
并继续21-1
到21-400
等等。对于每个缺失值,应创建一个新行,该行的值按正确的枚举顺序排列,该行的所有其他字段为 0。
combName sumLength RootID
<chr> <dbl> <int>
1 20-1 8.05 1
2 20-2 4.61 1
3 20-3 14.5 1
4 20-8 2.29 1
5 20-10 14.7 1
6 20-11 23.0 4
7 20-12 17.0 5
8 20-13 66.9 14
9 20-14 39.1 9
10 20-15 12.5 6
# ... with 1,099 more rows
有什么想法是怎么可能的?
解决方案
您可以借助tidyr
库中的函数来实现这一点。
combName
分成两列拆分'-'
。对于中的每个值,col1
创建从 1 到 400 的行,col2
最后再次组合成一列。col1
col2
library(tidyr)
df %>%
separate(combName, c('col1', 'col2'), sep = '-', convert = TRUE) %>%
complete(col1, col2 = 1:400, fill = list(sumLength = 0, RootID = 0)) %>%
unite(combName, col1, col2, sep = '-')
推荐阅读
- javascript - Audiomack 嵌入在移动设备上没有响应
- python - 无法通过python连接mysql
- javascript - 如何在反应中获取 api 对象属性
- junit - 用于全局 java.util.Map 的 Junit Mockito
- python - Python openpyxl 条件格式 containsText
- excel - ag-Grid 使用 Angular 9 材料组件模拟 Excel
- c# - .NET Core 依赖注入 - 许多数据库,一个 DbContext
- javascript - 有什么方法可以从另一个组件引用 Vue 变量
- kubernetes - GKE 上的 HPA 将部署扩展到 0
- r - 通过使用 R 和 dplyr 的相关控制组规范化数据框中的所有数字列