[英]Collapsing identical strings from multiple columns in one column
我需要將嵌套數據集重組為平面數據集。
我的數據集如下所示:
UserID Test
<p>A X
<p>A Y
<p>A Z
<p>B Y
<p>B Z
每個用戶都完成了不同數量的測試,他們的順序是任意的。 X,Y和Z代表統一的字符串測試名稱。
我需要它看起來像這樣:
UserID X Y Z
<p>A 1 1 1
<p>B 0 1 1
1 - 完成測試; 0 - 沒有完成測試。
換句話說,我需要從多個列(不是單個字符串)執行某種標記化。
我很感激有關如何實現這一目標的任何建議。 謝謝!
我使用UserId作為標識符轉換數據集,但結果數據集的列數與任何用戶完成的最大測試數量一樣多(這很好),但相同的測試在用戶之間未對齊(例如,用戶A的第一列包含X因為用戶A首先完成了測試X,但是對於用戶B完成了Y,因為用戶沒有完成測試X,或者沒有以相同的順序完成測試)。
一個選擇是
library(dplyr)
library(tidyr)
df1 %>%
extract(Test, into = c("Test", "colNm"), sep= "(.*);[^;]+$") %>%
mutate(colNm = str_c(colNm, " ", sep="_")) %>%
group_by(UserID) %>%
mutate(rn = row_number()) %>%
spread(colNm, Test)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.