it-swarm.com.de

Fügen Sie an einem bestimmten Ort in einem Datenrahmen eine neue Zeile hinzu

Hier meine Daten:

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

Ich möchte eine Zeile in der vierten Zeile hinzufügen:

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

Ich habe versucht, das rbind () so zu verwenden:

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

Aber ich kann nicht den Ort hinzufügen, den ich will. Ich würde mich sehr über diese Frage freuen. Danke vielmals.

9
Bruce Brown

Wenn Sie den Index nicht möchten, sondern eine einmalige "schnelle Korrektur" für ein tabellenartiges Erscheinungsbild, können Sie auf etwas zurückgreifen

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

Wenn die Reihenfolge ein wichtiges Merkmal Ihrer Datenmenge ist, sollten Sie sie auf sichere Weise kodifizieren, z. B. mithilfe einer Indexvariablen. Ich würde mich nicht auf Rownames oder die Reihenfolge der data.frame-Zeilen verlassen, da es Vorgänge gibt, bei denen sie nicht beibehalten werden.

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
4
Roland

diese Funktion würde Ihr Problem verbessern und lösen:

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

Danke fürs Lesen

0
Sergio Mora