在数据框中插入行,而不使用R创建新列

在数据框中插入行,而不使用R创建新列,r,insert,row,R,Insert,Row,我有这个: 1 2 3 1 10 11 12 2 13 14 15 3 16 17 18 4 19 20 21 5 22 23 24 我想要这个: 1 2 3 1 10 11 12 2 13 14 15 3 0 0.00 4 16 17 18 5 19 20 21 6 22 23 24 谁能告诉我怎么做? 我尝试了rbind、rbind.fill和smartbind,但结果并不是我所期望的 谢谢你你的

我有这个:

    1  2  3
1  10 11 12
2  13 14 15
3  16 17 18
4  19 20 21
5  22 23 24
我想要这个:

    1     2  3
1  10    11 12 
2  13    14 15
3   0  0.00  
4  16    17 18
5  19    20 21
6  22    23 24
谁能告诉我怎么做? 我尝试了rbind、rbind.fill和smartbind,但结果并不是我所期望的


谢谢你

你的新行比其他行短。因此,您必须在第三列中填写NA值:

rbind(mydf[1:2,],c(0,0,NA),mydf[3:nrow(mydf),])
如果插入
c(0,0)
,从而省略
NA
值,R将应用向量循环规则。这意味着,较短的向量将被“拉伸”以匹配所需的长度,循环其元素,再次从第一个开始。因此,将有效地插入向量
c(0,0,0)
。您可以根据需要选择所需的行为(
NA
vs
0

增编:

如果列数是可变的,则可以使用@asb的答案或使用以下方法:

mydf <- rbind(mydf[1:2,],NA,mydf[3:nrow(mydf),])
mydf[3,1:2] <- c(0,0)
mydf怎么样:

insert.under.row.number <- function (mat, rnum, what) {
  if (length(what) != ncol(mat)) what <- c(what, rep_len(NA, ncol(mat) - length(what)))
  rbind(mat[1:rnum, ], what, mat[(rnum + 1):nrow(mat), ])
}

这样做之后:
yy例如,您希望将变量2的行添加到名为“edges”的数据的变量1中
就这样做吧

allEdges <- data.frame(c(edges$V1,edges$V2))

allEdges这可能与此重复为什么要将数据保存在矩阵或data.frame中?如果行长度可以不同,一个简单的(行)向量列表将更合适。我终于找到了一种方法来获得所需的内容,我使用了rbind。但是我没有使用0.000,而是使用了0(需要0.000)。。我决定不显示NAs,但逗号仍然保留。我有类似的内容:0,0,0,。那些问题可以解决吗?对不起,我是在你发布答案时输入的。因此,在方法上存在重复。但我试图推广解决方案。问题是列的数量可能会发生变化,这取决于我导入的数据(文件循环)。。所以我不能像你一样用NA来填充suggest@LetAurn你应该在问题中提到这一点。请参阅我的关于向量回收的附录。向量将被拉伸,但您需要指定您想要的值。@LetAurn:嗯,我不想插嘴,但我的解决方案已经处理了。@LetAurn使用向量循环来适应可变数据帧宽度的一个小技巧。奇怪。。此解决方案不符合我的要求。。等等,我正在发布结果输入文件:输出文件:我想要的:我是个傻瓜。这是我在飞行中写的,从来没有在我的翻译机上运行过一次。请现在试一试。
  V1      V2       V3      V4     V5          V6   V7     V8 V9   V10
1  1 4068961 731027.9 186.849 1.5000  sondage006 24.0 26.000 NA 2.000
2  1 4068963 731027.8 185.317 0.9500  sondage006 26.0 28.000 NA 2.000
3  1 4068964 731027.8 183.785 2.1000  sondage006 28.0 30.000 NA 2.000
4  1 4068965 731027.8 182.253 1.3000  sondage006 30.0 32.000 NA 2.000
5  1 4068967 731027.8 180.721 0.5000  sondage006 32.0 34.000 NA 2.000
6  1 4068916 731018.2 181.267 0.5732 sondage006A 25.8 27.667 NA 1.867
    V1      V2       V3      V4   V5         V6 V7 V8 V9 V10
1    1 4068961 731027.9 186.849 1.50 sondage006 24 26 NA   2
2    1 4068963 731027.8 185.317 0.95 sondage006 26 28 NA   2
3    1 4068964 731027.8 183.785 2.10 sondage006 28 30 NA   2
4    0       0       NA      NA   NA       <NA> NA NA NA  NA
410  1 4068965 731027.8 182.253 1.30 sondage006 30 32 NA   2
5    1 4068967 731027.8 180.721 0.50 sondage006 32 34 NA   2
allEdges <- data.frame(c(edges$V1,edges$V2))