[英]Reshaping Data from Long to Wide by Group in R
我的數據集給我帶來了麻煩。 我不認為這會成為一個如此復雜的問題,但現在我感覺已經有了。
我有一個看起來與此類似的數據集
CaseInfoColNames CaseInfoData UID RunTime
**WarrantCase** XXXXXXXXXXXX P19 TIME
Desc . P19 TIME
Bond 500 P19 TIME
Remarks No License P19 TIME
**WarrantCase** YYYYYYYYYYYY P19 TIME
Desc . P19 TIME
Bond 200 P19 TIME
**CaseNumber** 123456789134 X20 TIME
Desc BOND X20 TIME
Bond 1000 X20 TIME
CommentCase DIV 2 X20 TIME
Charge Drive w.o.Lic X20 TIME
基本上有ID,每個ID可以有兩種類型:“保修箱”或“箱號”。 這兩個標題下面的行應成為列標題。 每個ID可能有多行,我意識到某些列標題將不相同,因此也有一種方法可以填寫NA。 理想情況下,也許數據看起來像這樣,但是如果這太麻煩了,最好保留長格式嗎? 非常感謝!
UID RunTime WarrantCase Desc Bond Remarks
P19 TIME XXXXXXXXXXXX . 500 No License
P19 TIME YYYYYYYYYYYY . 200 NA
X20 TIME NA BOND 1000 NA
CaseNumber CommentCase Charge
NA NA NA
NA NA NA
123.. DIV 2 Drive w.o. Lic
訣竅是為每種情況創建一個唯一的ID,以便每種情況下的所有行都具有相同的ID:
df1 %>%
mutate(caseID = cumsum(as.numeric(grepl("\\*\\*",df1$CaseInfoColNames)))) %>%
spread(CaseInfoColNames,CaseInfoData)
UID RunTime caseID **CaseNumber** **WarrantCase** Bond Charge CommentCase Desc Remarks
1 P19 TIME 1 <NA> XXXXXXXXXXXX 500 <NA> <NA> . No.License
2 P19 TIME 2 <NA> YYYYYYYYYYYY 200 <NA> <NA> . <NA>
3 X20 TIME 3 123456789134 <NA> 1000 Drive.w.o.Lic DIV.2 BOND <NA>
如果需要,您可以稍后刪除caseID列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.