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

> 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相关问答推荐

par函数中的缩写,比如mgp,mar,mai是如何被破译的?

在R中使用Scale_y_Break后更改y轴标签

迭代到DataFrame列并获得成对的值列表(col1->;col2、col2->;col3、col3->;col4等)的正确方法.

R中的哈密顿滤波

计算数据帧中指定值之前的行数,仅基于每行之后的future 行,单位为r

在列表中排列R数据框中的列顺序

我如何go 掉盒子图底部的数字?

R+reprex:在呈现R标记文件时创建可重现的示例

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

多元正态分布的计算

在散点图中使用geom_point放置线图例

R中治疗序列的相对时间指数

TidyVerse中长度不等的列结合向量

按组使用dummy r获取高于标准的行的平均值

roxygen2正在处理太多的文件

向内存不足的数据帧添加唯一行

以列名的字符向量作为参数按行应用自定义函数

当执行一个比下游react 链慢的耗时的函数时,如何防止shiny 的react 对象反弹?

如何在Ubuntu上更改R中的区域设置

R函数的多个类似输入-使用列表提供它们的问题