R问题-如何在每行之间插入固定数量的空白行?

时间:2018-09-21 16:51:46

标签: r dataset

我有大约70个名字的数据集。我的目标是创建一个具有相同信息的数据框,但是在每个名称之后跳过固定数量的行:

名称#1 |名称#1的学校名称
插入11行
名称#1 |名称#1的学校名称
插入11行
名称#1 |名称#1的学校名称
插入10行
名称#1 |名称#1的学校名称
名称#2 |名称#2的学校名称
插入11行
名称#2 |名称#2的学校名称
插入11行
名称#2 |名称#2的学校名称
插入10行
名称#2 |名称#2的学校名称



名称#n |名称#n的学校名称
插入11行
名称#n |名称#n的学校名称
插入11行
名称#n |名称#n的学校名称
插入10行
名称#n |名称#n的学校名称


如果有人知道创建此代码所需的R代码,请告诉我。 另外,如果您知道如何用另一种编程语言生成它,请使用伪代码让我们知道!

1 个答案:

答案 0 :(得分:0)

不知道您为什么要这样做,但是我创建了一个可以处理此问题的小循环。 软件包tibble具有可以使用的add_row函数。

我创建了一个示例data.frame。在循环中,根据需要将rep语句中的数字调整为11。循环也向后计数。这与以下事实有关:我们不断在值后面添加x行数。

library(tibble) 
df1 <- data.frame(name = LETTERS[1:4],
                  name2 = letters[1:4],
                  stringsAsFactors = FALSE)

for(i in nrow(df1):1){
  df1 <- add_row(df1, name = rep("", 2), name2 = rep("", 2), .after = i)
}
df1

   name name2
1     A     a
2            
3            
4     B     b
5            
6            
7     C     c
8            
9            
10    D     d
11           
12           

编辑:通过评论添加了@Frank的解决方案

as.tibble(df1[sapply(1:nrow(df1), function(x) c(x, rep(NA_integer_, 2))), ])

# A tibble: 12 x 2
   name  name2
 * <chr> <chr>
 1 A     a    
 2 NA    NA   
 3 NA    NA   
 4 B     b    
 5 NA    NA   
 6 NA    NA   
 .....
 .....