这个问题已经被要求优秀。 How to automatically insert a blank row after a group of data
我想知道是否有一个函数可以在R中执行相同的操作。
例子:
group <- c("a","b","b","c","c","c","d","d","d","d")
xvalue <- c(16:25)
yvalue <- c(1:10)
df <- data.frame(cbind(group,xvalue,yvalue))
group xvalue yvalue
1 a 16 1
2 b 17 2
3 b 18 3
4 c 19 4
5 c 20 5
6 c 21 6
7 d 22 7
8 d 23 8
9 d 24 9
10 d 25 10
我想在每个组之后留一个空白行,以便我可以手动检查条目
group xvalue yvalue
1 a 16 1
2
3 b 17 2
4 b 18 3
5
6 c 19 4
7 c 20 5
8 c 21 6
9
10 d 22 7
11 d 23 8
12 d 24 9
12 d 25 10
谢谢
最佳答案
首先将所有列转换为字符向量:
df_new <- as.data.frame(lapply(df, as.character), stringsAsFactors = FALSE)
然后,您可以创建所需的输出:
head(do.call(rbind, by(df_new, df$group, rbind, "")), -1 )
# group xvalue yvalue
# a.1 a 16 1
# a.2
# b.2 b 17 2
# b.3 b 18 3
# b.31
# c.4 c 19 4
# c.5 c 20 5
# c.6 c 21 6
# c.41
# d.7 d 22 7
# d.8 d 23 8
# d.9 d 24 9
# d.10 d 25 10
关于r - 在每组数据之后插入空白行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20260458/