這是我的資料集的外觀:
| hhid | food_code | consumed |.....|
|----------|--------------|--------------|.....|
| 479 | 01.1.1.1.0.3 | 0.66666667 |.....|
| 479 | 01.1.1.2.1.3 | 0.00000000 |.....|
| 480 | 01.1.1.1.0.3 | 0.33333333 |.....|
| 480 | 01.1.1.2.1.3 | 0.26548932 |.....|
...
...
所以,我有很多hhid
s 和 74 個獨特food_code
的 s。對于每個hhid
,我想制作一個資料框,如下所示:
| hhid | 01.1.1.1.0.3 | 01.1.1.2.1.3 |.....|
|----------|--------------|--------------|.....|
| 479 | 0.66666667 | 0.00000000 |.....|
| 480 | 0.33333333 | 0.26548932 |.....|
我試圖用t()
函式轉置,但它把一切都搞砸了。
filter
我也試過
raw2<-raw%>%
select(hhid, food_code_str, fd_cspn_ph)%>%
filter(hhid==479)
uj5u.com熱心網友回復:
您可以使用pivot_wider
from tidyr
(在 中tidyverse
)。
library(tidyverse)
df %>%
pivot_wider(names_from = "food_code", values_from = "consumed")
輸出
hhid `01.1.1.1.0.3` `01.1.1.2.1.3`
<int> <dbl> <dbl>
1 479 0.667 0
2 480 0.333 0.265
資料
df <- structure(list(hhid = c(479L, 479L, 480L, 480L, 481L), food_code = c("01.1.1.1.0.3",
"01.1.1.2.1.3", "01.1.1.1.0.3", "01.1.1.2.1.3", "01.1.1.2.1.4"
), consumed = c(0.66666667, 0, 0.33333333, 0.26548932, 0.26548932
)), class = "data.frame", row.names = c(NA, -5L))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449402.html
下一篇:順序列名加0