2016-09-23 5 views
-3

Ich habe einen Vektor, wie unten angegeben:einen Vektor zu Datenrahmen mit mehreren Spalten

("#99" "Hershey" "$6.7 B" "7%" "$4.7 B" "$562 M" "Consumer Packaged Goods" 
"#100" "Costco" "$6.7 B" "14%" "$117.3 B" "-" "Retail") 

Der Einfachheit halber habe ich nur wenige Elemente aus 700 Elementen erwähnt.

will ich es Datenrahmen konvertieren, wie unten:

S.NO Brand Brandval Change Revenue Cost Industry 
99 Hershey $6.7 B 7%  $4.7 B $562M Consumer Packaged goods 
100 Costco $6.7B  14% $117.3B -  Retail 

ich versuche as.data.frame aber es gibt mir Ergebnisse in einer einzigen Spalte, während ich es in 7 Spalten geteilt werden soll, wie erklärt über. Bitte helfen.

+0

as.datafram (df) hier df ur Daten –

+0

wenn ich as.data.frame anwenden auf dem Vektor gibt es mir eine einzige Spalte. – assasinC

+4

'as.data.frame (Matrix (vec, ncol = 7, byrow = T))', 'vec' ist dein Vektor. – mtoto

Antwort

1

Sie können folgendermaßen vorgehen: Teilen Sie Ihren Vektor nach einem Vektor von 1:7, wenden Sie dann cbind.data.frame an. Schließlich fügen Sie Spaltennamen

x=c("#99", "Hershey", "$6.7 B", "7%", "$4.7 B", "$562 M", "Consumer Packaged Goods", "#100", "Costco", "$6.7 B", "14%", "$117.3 B", "-", "Retail") 
res <- cbind.data.frame(split(x, rep(1:7, times=length(x)/7)), stringsAsFactors=F) 
names(res) <- c("S.NO", "Brand", "Brandval", "Change", "Revenue", "Cost", "Industry") 
str(res) 
#### 'data.frame': 2 obs. of 7 variables: 
#### $ S.NO : chr "#99" "#100" 
#### $ Brand : chr "Hershey" "Costco" 
#### ... 

Sie können die Option wählen StringAsFactors so dass Sie bekommen entweder Zeichen oder Faktor Spalten

+1

die Lösung von @ Mtoto in obigen Kommentaren funktioniert auch. Vielen Dank. – assasinC

Verwandte Themen