2017-10-08 3 views
-3

So bekomme ich, dass der Titel schrecklich und generisch ist. Ich habe keine Ahnung, wie ich kurz beschreiben soll, was ich zu tun versuche.Erstellen eines Datenrahmens aus Daten in einem vorhandenen Datenrahmen basierend auf Bucket-Zeilen in R

Ich habe einen 2-Spalten-Datenrahmen in R, Spalte A hat Datenwerte, Spalte B hatte Daten, die jetzt Binned wurde (Jahr mit Spalte A verbunden ist, ist jetzt ein Fach Label basierend auf Jahr Bereichen).

Ich muss einen neuen Datenrahmen generieren, der die Bin-Labels als Spalten mit den zugehörigen Datenwerten als Zeileneinträge verwendet, vorzugsweise sortiert, mit 'NA' ausgefüllt, um Spalten unterschiedlicher Länge zu verhindern.

Beispieldaten:

df <- data.frame(values=c(1,NA,3,NA,5:6,7:9), 
       bins=rep(c("yr1_yr2","yr2_yr3","yr3_yr4"),each=3)) 

SOLUTION EDIT: Also nach vielen Experimentieren war ich in der Lage zu tun, was ich mit meinen Daten wollte mithilfe der ‚cut_width‘ Funktion aus ggplot2 meinen Daten in Bins schneiden dann plop es in einem Verteilungsdiagramm. Vielen Dank für Ihre Versuche, Entschuldigung nochmal für die vage Frage und das Fehlen von Beispieldaten.

+0

Sie können mit 'Bibliothek (data.table); dcast (setDT (dat), rowid (label) ~ label, value.var = 'year') ' – akrun

+0

Vielleicht die erwartete Ausgabe liefern? – useR

Antwort

0

Nicht ganz sicher, ob dies immer in der Nähe ist, was Sie wollen ...

library(tidyverse) reshape2::melt(df, id.vars='bins', measure.vars='values')

kehrt

bins variable value 
1 yr1_yr2 values  1 
2 yr1_yr2 values NA 
3 yr1_yr2 values  3 
4 yr2_yr3 values NA 
5 yr2_yr3 values  5 
6 yr2_yr3 values  6 
7 yr3_yr4 values  7 
8 yr3_yr4 values  8 
9 yr3_yr4 values  9 
Verwandte Themen