2017-02-28 6 views
0

Ich habe folgende DatenrahmenSpaltennamen aus Werten Tidyr

df <- data.frame(event=c("A", "B", "C"), value=c(200,300,400)) 
df 
    event value 
1  A 200 
2  B 300 
3  C 400 

und

event A_value B_value C_value 
1  A  200  NA  NA 
2  B  NA  300  NA 
3  C  NA  NA  400 

Haben Sie eine Lösung zu bekommen?

Vielen Dank.

(Ich habe versucht, tidyr :: Spread, aber nicht wissen, wie "Ereignis" zu halten und auch nicht die richtige Benennung der neuen Spalten. Ich muss "Ereignis" halten, weil ich die Ausgabe weiterleiten muss und verwendet „Ereignis“ wieder)

Antwort

0

Hier ist eine einfache Abhilfe:. schafft eine zusätzliche Spalte mit den richtigen Spaltennamen und dann verwenden, um die Daten zu verbreiten:

library(dplyr); library(tidyr) 
mutate(df, key = paste(event, "value", sep = "_")) %>% 
    spread(key, value) 

# event A_value B_value C_value 
#1  A  200  NA  NA 
#2  B  NA  300  NA 
#3  C  NA  NA  400 
+0

Vielen Dank. – feinmann

+0

Wie würden Sie jetzt die Spalte "Ereignis" entfernen und die NA-Werte reduzieren? Verstehst du was ich meine? Ich habe es mit Aggregat versucht und es funktioniert, aber ich sehe hässlich aus. Gibt es eine elegantere Lösung? Danke – feinmann

+0

Ich verstehe nicht, was Sie bedeuten –

Verwandte Themen