我希望在数据框的特定位置添加空行。假设我们有以下数据框:
df <- data.frame(var1 = c(1,2,3,4,5,6,7,8,9),
var2 = c(9,8,7,6,5,4,3,2,1))
我想在第1行、第3行和第5行后面添加空行(我知道在大多数情况下这不是最佳实践,最终我想在这里使用flextable创建一个表格)。这些行号保存在向量中:
rows <- c(1,3,5)
现在,我想使用for循环遍历行向量,在每一行后面使用add_row()添加一个空行:
for (i in rows) {
df <- add_row(df, .after = i)
}
问题在于,虽然第一次迭代运行得很完美,但由于数据帧显然变长,其他空行会错位。为了解决这个问题,我在每次迭代后尝试将向量加1:
for (i in rows) {
df <- add_row(df, .after = i)
rows <- rows+1
}
这段代码没有起作用。我猜测行向量只被计算了一次。有没有人有什么想法?
Reduce
仍然需要大约25秒的时间。 - thelatemailReduce
的性能比for
循环要好得多,而与您的方法相比差别很小。我已经在您的大型数据集上进行了检查,正如您所说,Reduce
比您的方法慢得多,在这种情况下与for
循环之间的差异不大。 - stefan