**的樣本數據**如何從長重塑數據評論後加入寬
我有什麼:
pmts <- data.frame(stringsAsFactors=FALSE,
name = c("johndoe", "johndoe", "janedoe", "foo", "foo", "foo"),
pmt_amount = c(550L, 550L, 995L, 375L, 375L, 375L),
pmt_date = c("9/1/16", "11/1/16", "12/15/16", "1/5/17", "3/5/17", "5/5/17")
)
#> name pmt_amount pmt_date
#> 1 johndoe 550 9/1/16
#> 2 johndoe 550 11/1/16
#> 3 janedoe 995 12/15/16
#> 4 foo 375 1/5/17
#> 5 foo 375 3/5/17
#> 6 foo 375 5/5/17
我尋找實現:
read.table(header = T, text =
"name pmt_amount first_pmt second_pmt third_pmt
johndoe 550 9/1/16 11/1/16 NA
janedoe 995 12/15/16 NA NA
foo 375 1/5/17 3/5/17 5/5/17"
)
#> name pmt_amount first_pmt second_pmt third_pmt
#> 1 johndoe 550 9/1/16 11/1/16 <NA>
#> 2 janedoe 995 12/15/16 <NA> <NA>
#> 3 foo 375 1/5/17 3/5/17 5/5/17
**更新結束**
我有一個包含不同產品付款信息的大型數據集。其中一些產品具有全額付款選項以及兩付和三付的選項。我需要創建將是First_Payment,Second_Payment和Third_Payment的字段,並且如果只有一個或兩個付款,則會在各個字段中填充NA。
我試過一對夫婦的選擇和最好的解決方法我到目前爲止是這樣的:
pmts %>%
group_by(Email, Name, Amount, Form.Title) %>%
summarise(First_Payment = min(Payment.Date),
Second_Payment = median(Payment.Date),
Last_Payment = max(Payment.Date)) -> pmts
這顯然是不理想的,因爲正在彌補付款日期爲2,薪酬計劃,我會必須指示最終用戶忽略此字段,並只查看第1和第3字段。
我也試圖與部分種這樣的總結:
n <- length(pmts$Payment.Date)
sort(pmts$Payment.Date,partial=n-1)[n-1]
但是,如果有不適合的人三次付款,則需N-1日期從整個數據集和應用到所有其他領域。
理想情況下,我要這樣,如果它是一個付費的,充滿了付息領域將有日期和第二/第三場會說NA。 2工資將有第一和第二日期,第三場將表示不適用。最後3個薪水將有3個日期。
這裏的最終用戶是不是超級數據悟性,所以我試圖讓這個一樣容易地解釋。任何建議將非常感激。謝謝!
你需要[做你的榜樣重複性]通過增加樣本數據(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#5963610)。 – alistaire