我想在固定值范围(年份:2006-2010)之间 for each ID(1,2,3)添加新行,同时保留先前存在的数据(大小列).这是一个例子:

tibble::tribble(
  ~Year, ~ID, ~Size,
  2006,   1,  5,
  2007,   1,  8,
  2009,  2,  6,
  2010,   2,  4, 
  2007,   3,  1,
  2009, 3, 2
)

我想要的是这样的东西:

tibble::tribble(
  ~Year, ~ID, ~Size,
  2006,   1,  5,
  2007,   1,  8,
  **2008, 1, NA,
  2009, 1, NA,
  2010, 1, NA,
  2006, 2, NA,
  2007, 2, NA,
  2008, 2, NA,**
  2009,  2,  6,
  2010,   2,  4, 
  **2006, 3, NA,**
  2007,   3,  1,
  **2008, 3, NA,**
  2009, 3, 2,
 ** 2010, 3, NA**
)

我try 了循环和add_rows,但没有成功.

推荐答案

由于您使用的是tribble,我假设您对tidyverse解决方案感到满意:

df2 <- df1 |> complete(Year = min(Year):max(Year), ID) |> arrange(ID, Year)
df2

给予:

# A tibble: 15 × 3
    Year    ID  Size
   <dbl> <dbl> <dbl>
 1  2006     1     5
 2  2007     1     8
 3  2008     1    NA
 4  2009     1    NA
 5  2010     1    NA
 6  2006     2    NA
 7  2007     2    NA
 8  2008     2    NA
 9  2009     2     6
10  2010     2     4
11  2006     3    NA
12  2007     3     1
13  2008     3    NA
14  2009     3     2
15  2010     3    NA

R相关问答推荐

如何将具有重复名称的收件箱合并到R中的另一列中,而结果不同?

使用gcuminc,如何使用逗号格式化风险表?

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

在数学中正确显示摄氏度、开氏度或华氏度

bslib::card_header中的shine::downloadButton,图标而不是文本

制作等距离的线串副本

汇总数据表中两个特定列条目的值

使用R闪光显示所有数据点作为默认设置

R spatstat Minkowski Sum()返回多个边界

方法::slotName如何处理非类、非字符的参数?

函数可以跨多个列搜索多个字符串并创建二进制输出变量

从多层嵌套列表构建Tibble?

如何在PDF格式的kableExtra表格中显示管道字符?

我们如何在R中透视数据并在之后添加计算

自动STAT_SUMMARY统计与手动标准误差之间的差异

为什么这个表格格罗布不打印?

R代码,用于在线条图下显示观测表

使用其他DF中的文件名将列表中的每个元素保存到文件中

R中从因数到数字的转换

合并多个数据帧,同时将它们的名称保留为列名?