这个问题已经被要求优秀。 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/

10-10 02:03