1
私は興味、ID、日付の2つの列を持つ数千の行のデータフレームを持っています。いくつかのIDは繰り返されますが、日付は繰り返されません。私はそれぞれのIDに対して1つの行だけを持ち、UniqueID、date1、date2などのように、異なる日付を列に格納したいと考えています。行を集約して新しい変数を追加する
これを行う最善の方法は誰にも分かりますか?私はRを使っていますが、Rでこれを行う最適な方法はありますか?
私は興味、ID、日付の2つの列を持つ数千の行のデータフレームを持っています。いくつかのIDは繰り返されますが、日付は繰り返されません。私はそれぞれのIDに対して1つの行だけを持ち、UniqueID、date1、date2などのように、異なる日付を列に格納したいと考えています。行を集約して新しい変数を追加する
これを行う最善の方法は誰にも分かりますか?私はRを使っていますが、Rでこれを行う最適な方法はありますか?
これはどういう意味ですか?次のように
require(dplyr)
require(tidyr)
dates <- c("02/26/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
dat <- data.frame(id = c(1,1,2,3,2), date = as.Date(dates, "%m/%d/%y"))
DATが見えます:
id date
1 1 1992-02-26
2 1 1992-02-27
3 2 1992-01-14
4 3 1992-02-28
5 2 1992-02-01
次のトリック
dat %>%
select(id, date) %>% #here you select the columns that you want to use
group_by(id) %>%
mutate(seq = paste0("date", row_number(id))) %>%
spread(seq, date)
では、これになる:
Source: local data frame [3 x 3]
Groups: id [3]
id date1 date2
* <dbl> <date> <date>
1 1 1992-02-26 1992-02-27
2 2 1992-01-14 1992-02-01
3 3 1992-02-28 <NA>
はい、私はこれを正確に意味します。 ありがとうございました! – Xbel