2016-04-12 8 views
0

Ich habe zwei Dateien. Eine Datei (csv) enthält Daten und eine zweite Datei enthält den Header für Daten (in einer Spalte). Ich muss beide Dateien vereinen und data.frame mit Daten aus der ersten Datei und Header aus der zweiten Datei erhalten. Wie kann es gemacht werden?Laden Header für data.frame aus Datei


Reduzierte Probe. Datendatei:

10;21;36 
7;56;543 
7;7;7 
7890;1;1 

Headerdatei:

height 
weight 
light 

Ich brauche data.frame ab csv Datei:

height;weight;light 
10;21;36 
7;56;543 
7;7;7 
7890;1;1 
+0

Bitte zeigen Sie ein reproduzierbares Beispiel zum Testen an. Wenn der zweite Datensatz "df2" ist und der Header in einer Spalte "col1" heißt. Nach dem Lesen der ersten Daten verwenden Sie 'colnames (df1) <- as.character (df2 $ col1)' – akrun

+1

lesen.csv ("datafile.csv", col.names = readLines ("headerfile")) – chinsoon12

+1

'read.table (file1, sep = ";", col.names = scan (file2, what = "")) ' –

Antwort

1

Wir lesen können sowohl die Datensätze mit header=FALSE und die Spaltennamen ändern sich mit der erste Spalte des zweiten Datensatzes.

df1 <- read.csv("firstfile.csv", sep=";", header=FALSE) 
df2 <- read.csv("secondfile.csv", header=FALSE) 
colnames(df1) <- as.character(df2[,1]) 
2

Sie könnten das col.names Argument in read.table() verwenden, um die Header-Datei als die Spaltennamen in der gleichen Aufruf der Datendatei zu lesen, verwendet zu lesen.

read.table(datafile, sep = ";", col.names = scan(headerfile, what = "")) 

Wie @ chinsoon12 zeigt in den Kommentaren, readLines() auch anstelle von scan() verwendet werden könnten.

Verwandte Themen