在数据框中的特定位置添加新行

问题描述 投票:10回答:3

继承我的数据:

 > data
  Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF

我想在第四行添加1行,如下所示:

 > data
  Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Benz                C63
5   Lexus               ISF

我试过像这样使用rbind():

 Benz = data.frame(Manufacturers = "Benz", Models = "C63")
 newdata = rbind(data,Benz)

但我无法添加到我想要的地方。我很感激这个问题的任何帮助。非常感谢。

r row add rbind
3个回答
6
投票

如果你不想要索引而是一次性“快速修复”某些类似电子表格的外观,你可能会诉诸于

newData <- rbind( data[1:3,], Benz, data[ 4,] )

4
投票

如果订单是数据集的一个重要特征,那么您应该以安全的方式对其进行编码,例如,使用索引变量。我不会依赖rownames或data.frame行的顺序,因为有些操作不会保留它们。

data <- read.table(text="Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF",header=TRUE)

data$ind <- seq_len(nrow(data))
data <- rbind(data,data.frame(Manufacturers = "Benz", Models = "C63",ind=3.1))
data <- data[order(data$ind),]

#   Manufacturers Models ind
# 1          Audi    RS5 1.0
# 2           BMW     M3 2.0
# 3      Cadillac  CTS-V 3.0
# 5          Benz    C63 3.1
# 4         Lexus    ISF 4.0

0
投票

此功能将改善并解决您的问题:

INSERT_NA_ROW <- function(indice, tabla) {
  new_Row <- NA
  long <- NROW(tabla)
  new_Data<- rbind(tabla[1:indice,], new_Row ,tabla[(indice + 1):(long),])
  return(new_Data)
} # Insert Row in index of dataframe

谢谢你读了我一下!

© www.soinside.com 2019 - 2024. All rights reserved.