首页 > 解决方案 > 填写表(R)中缺失的枚举值

问题描述

我想在表格的一列中填写缺失值。在列combName中,值应该上升到20-400并继续21-121-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

有什么想法是怎么可能的?

标签: renumeration

解决方案


您可以借助tidyr库中的函数来实现这一点。

combName分成两列拆分'-'。对于中的每个值,col1创建从 1 到 400 的行,col2最后再次组合成一列。col1col2

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 = '-')

推荐阅读