2017-02-04 7 views
1

Kann mir jemand sagen, warum ich Probleme habe mit Daten neu zu gestalten. Ich möchte von hier gehen:Umformen mit Daten zu lange - R

#Data frame 
date = c("01/03/15", "03/04/12", "07/21/16","09/08/16") 
id = c(1,1,2,2) 
df = data.frame(id,date) 

#Convert to date 
df$date <- as.Date(df$date, "%m/%d/%y") 

#Reshape 
library(reshape) 
a <- reshape(df, idvar = "id", timevar = "date", direction = "wide") 

hier:

#Final date frame 
date.2 = c("03/04/12", "09/08/16") 
date.1 = c("01/03/15", "07/21/16") 
id = c(1,2) 
df = data.frame(id,date.1,date.2) 

Vielen Dank für Ihre Hilfe.

Antwort

1

Wir dcast

library(data.table) 
dcast(setDT(df), id~paste0("date.", rowid(id)), value.var = "date") 
# id  date.1  date.2 
#1: 1 2015-01-03 2012-03-04 
#2: 2 2016-07-21 2016-09-08 

verwenden oder mit tidyverse

library(dplyr) 
library(tidyr) 
df %>% 
    group_by(id) %>% 
    mutate(i1 = paste0("date.", row_number())) %>% 
    spread(i1, date) 
+0

dank @akrun. Neugierig, funktioniert die Umgestaltung nicht mit Daten? – richiepop2

+0

@ nchiepop2 Du meintest die Umformfunktion, richtig. Dafür benötigen Sie eine Sequenzspalte – akrun