/**/

我有一个数据框,如下所示:

> df <- data.frame(x = c(1,0,2,0,1,3,1),
+                  y = c("lima","chicago","new york","Miami","havana","Colon","la paz"))
> df
  x        y
1 1     lima
2 0  chicago
3 2 new york
4 0    Miami
5 1   havana
6 3    Colon
7 1   la paz

我想要找到一种方法来插入空白N行取决于第x列的值 因此,如果x是1,则在上面插入1个空白行,如果x是3,则在上面插入3个空白行.上述数据框的期望输出应如下所示:

> df
    x        y
1  NA     <NA>
2   1     lima
3   0  chicago
4  NA     <NA>
5  NA     <NA>
6   2 new york
7   0    Miami
8  NA     <NA>
9   1   havana
10 NA     <NA>
11 NA     <NA>
12 NA     <NA>
13  3    Colon
14 NA     <NA>
15  1   la paz

推荐答案

我们可以这样做: 我们按行号分组,并在每个行号上添加x+1行. 使用一个技巧,我们可以展示NA的第一个:

library(dplyr)

df %>% 
  group_by(ID = row_number()) %>% 
  summarise(cur_data()[seq(x+1),]) %>% 
  arrange(!is.na(x), x, .by_group = TRUE) %>% 
  ungroup() %>% 
  select(-ID)
       x y       
   <dbl> <chr>   
 1    NA NA      
 2     1 lima    
 3     0 chicago 
 4    NA NA      
 5    NA NA      
 6     2 new york
 7     0 Miami   
 8    NA NA      
 9     1 havana  
10    NA NA      
11    NA NA      
12    NA NA      
13     3 Colon   
14    NA NA      
15     1 la paz  

R相关问答推荐

无法有条件地在ggplot中使轴标签加粗

为什么用数字索引 .SD 比将数字存储在变量中更快

总结一个变量/列对其他变量/列的所有可能值

R: Vector to matrix - 将一维向量索引转换为二维矩阵索引?

如何计算正负结果之间的天数并使用 R for each 结果创建新列

在 R 中分组后查找哪些列范围重叠

dplyr 在有时缺少列时总结

colored颜色 /填充 Delaunay 图类似于 R 中的这个 voronoi 图

为 std::array 专门化 Rcpp::as()

等效模型的不同 R 平方

R:正确地将“For循环”转换为“并行循环”

在 google colab for R 中,如何安装 crimedata 包?

R:如何将数据帧转换为具有空角的非对称矩阵

控制 map 图例中的值范围

在分组条形图中显示单个条形计数标签

有没有更好的 R 方法来通过行上的函数扩展数据框?

如何根据另一列的另一个值在一列中收集数据

如果存在,则将 df2 中的值插入到匹配的 df1 单元格中,如果 df1 中不存在,则附加 df2 行,如果插入或追加,则附加索引 [R]

使用 case_when 对组的 n% 的列进行变异

ggplot x 轴标签超出边界并被部分切断