2016-08-27 2 views
-2

ich eine CSV-Datei in R mit verschachtelten Schleifen mit row_name=T schreibe, immer der ZeilennameCSV-Datei Zeilenname immer wiederholt immer

erhält wiederholte
m=4 
n=5 
for (j in 1:m) 
{ 
    for (i in 1:n) 
    { 
     write.table(data, file="result.csv", append=T, row.names=T, col.names=F,sep=",") 
    } 
} 

output = rowName = 1,2,3,4,5 , 1,2,3,4,5, ... aber ich möchte 1,2,3,4,5,6,7,8 ....

+1

Sie sind auf die Originaldatei und jedes Mal, Anhängen, die 'write.table' mit' row.names = TRUE', beginnt bei 1. – akrun

+0

gibt es eine Möglichkeit, Sequenz inkrementieren nicht zu wiederholen (ich kenne seine logische one aber PLZ mir helfen) –

+0

Das Argument zu rownames ist nicht unbedingt logisch. Lesen Sie die Hilfeseite: Kann auch "ein Zeichenvektor von zu schreibenden Zeilennamen sein". Sie müssen eine laufende Tally des letzten rowname und der Anzahl der Zeilen im aktuellen Daten 'Argument' behalten. –

Antwort

0

@ 42-Antwort in den Kommentaren ist gut. Falls die Größe der endgültigen Tabelle nicht zu groß ist, können Sie auch versuchen, diesen Ansatz -

m=4 
n=5 
for (j in 1:m) 
{ 
    for (i in 1:n) 
    { 
    data <- data.frame(matrix(rnorm(40),20)) 
    write.table(data, file="result.csv", append=T, row.names=F, col.names=F,sep=",") 
    } 
} 

final.data <- read.csv("result.csv",header = F) 
final.data <- data.frame(cbind(1:nrow(final.data),final.data)) 
write.table(final.data, file="result.csv", row.names=F, col.names=F,sep=",") 
Verwandte Themen