2016-05-07 16 views
1

Ich habe einen data.frame mit Dimension [6587 37] und die rownames nach jeweils 18 Zeilen wiederholen müssen. Wie ich das in Rstudio machen kann.R, Replizieren die rownames in data.frame

+4

data.frame rownames müssen eindeutig sein. – jimmyb

+0

@jimmyb, ich muss einzigartige rownames bis zu 18 Reihen geben und es bis zu 6587 Reihen fortsetzen. – irfan

Antwort

1

Wenn Ihre 18 Spaltennamen enthält:

mynames <- c("a", "b", "c", "d", "e", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s") 

können Sie bekommen, was Sie wollen mit:

paste0(rep(mynames,length.out=6587),rep(1:366,each=18,length.out=6587)) 

Oder Sie können Ändern Sie die Namen, indem Sie verschiedene Dinge einfügen.

+0

das funktioniert, vielen Dank. @Juanjo – irfan

+0

Bitte, upvote mich und wählen Sie die Antwort als die gute. – Juanjo

+0

@ Juanjo! Wie können wir aus dem Großteil der Daten gezielte Rasterdaten extrahieren? (z. B.) Ich muss die täglichen Daten für den Längen- und Breitengrad aus dem 40 Jahre umfassenden Datensatz der Region ziehen. – irfan

1

Zeilennamen in data.frames müssen eindeutig sein.

> df <- data.frame(x = 1:2) 
> rownames(df) <- c("a", "a") 
Error in `row.names<-.data.frame`(`*tmp*`, value = value) : 
    duplicate 'row.names' are not allowed 
In addition: Warning message: 
non-unique value when setting 'row.names': ‘a’ 

Sie könnten make.names verwenden die Namen eindeutig zu machen, aber immer noch einige sich wiederholende Information tragen.

> make.names(c("a","a"), unique = TRUE) 
[1] "a" "a.1" 

Diese mit Hilfe könnte von grep identifiziert Oder Sie könnten eine Spalte in df oder eine zweite data.frame machen, die die Informationen sind

+0

Ja, das war der Fehler und jetzt ist es gelöst. – irfan