2017-05-13 6 views
-1

Meine Daten haben mehrere Zeilen pro Mitglieds-ID. Ich habe es unten verspottet (siehe #dies ist was ich habe). Ich muss es in eine Form konvertieren, in der ich eine Zeile pro Mitglieds-ID habe und mehrere Spalten erstelle. Ich habe auch die gewünschte Ausgabe gemunkelt (siehe #das ist was ich will). Ich bin auf der Suche nach dem einfachsten Weg, diese Transformation in R zu machen. Ich bin ein brandneuer R- und RStudio-Benutzer mit wenig Programmierhintergrund. Wäre jemals so dankbar für Hilfe mit Code.Neuer Benutzer, der Daten entstapelt

#this is what I have 

ID <- c(1,1,2,3,3,3) 
Date <- as.Date (c("2015/01/01","2016/01/03", "2011/03/01", "2015/01/09", "2017/12/11","2016/09/09")) 
Score <- c(5,15,2,6,12,18) 
df <- data.frame(ID, Date, Score) 
df 

#this is what i want 

ID2 <- c(1,2,3) 
Date1 <- as.Date (c("2015/01/01","2011/03/01","2015/01/09")) 
Date2 <- as.Date (c("2016/01/03", NA, "2017/12/11")) 
Date3 <- as.Date (c(NA, NA,"2016/09/09")) 
Score1 <- c(5,2,6) 
Score2 <- c(15,NA,12) 
Score3 <- c("NA","NA",18) 
df2 <- data.frame (ID2, Date1, Date2, Date3, Score1, Score2, Score3) 
df2 

Antwort

-2

Wir dcast von data.table verwenden können, wo mehrere value.var Spalten

library(data.table) 
dcast(setDT(df), ID~rowid(ID), value.var = c("Date", "Score"), sep="") 
# ID  Date1  Date2  Date3 Score1 Score2 Score3 
#1: 1 2015-01-01 2016-01-03  <NA>  5  15  NA 
#2: 2 2011-03-01  <NA>  <NA>  2  NA  NA 
#3: 3 2015-01-09 2017-12-11 2016-09-09  6  12  18 
+2

Thank you! Zuerst hat es Fehler gegeben, aber ich habe R neu gestartet und der gleiche Code hat funktioniert! – ZhenyABB

Verwandte Themen