![](/img/trans.png)
[英]How to indicate first none missing value per subject in a longitudinal data in R?
[英]Reshaping longitudinal value to wide, for data with multiple rows per subject
R:從長到寬重塑數據,包括日期
(我試圖包含數據,但格式太糟糕了,我放棄了)。
我有一個關於重塑縱向數據的問題。 訣竅是每個主題我都有多行('row_num' 范圍從 1 到 8)。
我已經查看了 20 多個 Stack Overflow 頁面、其他一些頁面以及 Hadley 的關於重塑的帖子(和文章),似乎我找不到一個差距:
我每個主題有多行,但不知道如何將其變成一行。 訣竅是我需要把(比如)Q1,...,Q5 變成兩個或更多的問題塊(Q1.1,...,Q5.1,Q1.2,...Q5 .2, ...)
使用一個術語,'row_num' 是一個主體內變量,一切似乎都基於主體間變量。
這讓我感到困惑和沮喪,因為恕我直言,經典的縱向到寬的情況 = 每個主題多行(帶有一個變量塊)到每個主題一行(帶有多個變量塊)。
有人可以指導我找到一些涵蓋此內容的答案或教程嗎?
非常感謝!
編輯后,原始數據框的 dput 如下所示:
# A tibble: 6 x 9
Subject_ID row_num Date Q1 Q2_text Q3 Q4 Q5 Q6_text
<dbl> <dbl> <date> <dbl> <chr> <dbl> <dbl> <dbl> <chr>
1 1 1 2019-01-01 4 Because 5 5 1 and so on
2 1 2 2019-01-02 1 O, bother 5 4 1 NA
3 1 3 2019-01-03 2 NA 3 4 NA NA
4 2 1 2018-12-04 NA NA 1 4 1 NA
5 3 1 2018-12-15 3 In addtion 5 NA 3 NA
6 3 2 2018-12-26 1 NA 4 3 2 in conclusion
如果您提供一些示例數據,我們可以提供幫助。 網絡上充滿了使用以下功能的教程,這些功能可以執行您感興趣的操作:
來自tidyr
包的gather()
和spread()
來自reshape2
包的melt()
和dcast()
這是使用tidyr
的方法。
library(tidyr)
df2 <- df %>%
# (optional) First convert all the data columns to text so
# they're readable throughout the process.
mutate_at(vars(Date:Q6_text), as.character) %>%
# Gather into long format, where we record the column it came from
# as "question" and the value it held as "value"
gather(question, value, -Subject_ID, -row_num) %>%
# Combine the row_num and question into a new column
unite("question2", c("row_num", "question")) %>%
# Use that new column to spread everything out
spread(question2, value)
> df2
Subject_ID 1_Date 1_Q1 1_Q2_text 1_Q3 1_Q4 1_Q5 1_Q6_text 2_Date 2_Q1 2_Q2_text 2_Q3 2_Q4 2_Q5 2_Q6_text 3_Date 3_Q1 3_Q2_text 3_Q3 3_Q4 3_Q5 3_Q6_text
1 1 2019-01-01 4 Because 5 5 1 and so on 2019-01-02 1 O, bother 5 4 1 <NA> 2019-01-03 2 <NA> 3 4 <NA> <NA>
2 2 2018-12-04 <NA> <NA> 1 4 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
3 3 2018-12-15 3 In addtion 5 <NA> 3 <NA> 2018-12-26 1 <NA> 4 3 2 in conclusion <NA> <NA> <NA> <NA> <NA> <NA> <NA>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.