2013-04-27 9 views
8

Heres:In meiner Daten eine neue Zeile in bestimmten Ort in einem Datenrahmen

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

Ich mag würde 1 Zeile in der vierten Zeile hinzuzufügen, wie folgt aus:

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

habe ich versucht, benutze den rbind() wie folgt:

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

Aber ich kann nicht zu dem Platz hinzufügen, den ich möchte. Ich würde jede Hilfe in dieser Frage zu schätzen wissen. Danke vielmals.

+0

möglich Duplikat von [R greifen ein Vektor als Zeile in data.frame] (http://stackoverflow.com/questions/3651198/r-insert-a-vector-as-a-row-in-data-frame) – Roland

Antwort

2

Wenn die Reihenfolge eine wichtige Funktion Ihres Datasets ist, sollten Sie sie auf sichere Weise kodieren, z. B. indem Sie eine Indexvariable verwenden. Ich würde mich nicht auf rownames oder die Reihenfolge der dat.frame-Zeilen verlassen, da es Operationen gibt, bei denen sie nicht erhalten sind. Insert:

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 
+2

Punkt über Zeilennamen genommen, aber ein Ansatznamen Ansatz, der sehr ähnlich zu Ihrem ist wäre 'rbind (Daten," 3.1 "= data.frame (Hersteller =" Benz ", Models =" C63 "))' (ohne Ihre "ind" Spalte zu erstellen). Natürlich ist Nachbestellung immer noch erforderlich, aber ein Schritt ist gerettet :) – A5C1D2H2I1M1N2O1R2T1

4

Falls Sie den Index nicht wollen, sondern eine einmalige „schnelle Lösung“ für einige tabellenähnliche Aussehen, könnten Sie zu

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