我有大约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代码,请告诉我。
另外,如果您知道如何用另一种编程语言生成它,请使用伪代码让我们知道!
答案 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
.....
.....