[英]How do you transpose rows into columns in r?
我有這張桌子:
ID Day Score
23928 Monday 75
394838 Tuesday 83
230902 Wednesday 90
329832 Thursday 40
…
並繼續,重復一天幾次。
我想轉置日期列來獲取這張表
MONDAY Tuesday Wednesday …… Sunday
78 4343 343 433
有沒有辦法在 r 中做到這一點?
我們可以使用data.table::transpose
library(data.table)
data.table::transpose(df1[-1], make.names = 'Day')
或使用base R
as.data.frame.list(with(df1, setNames(Score, Day)))
df1 <- structure(list(ID = c(23928L, 394838L, 230902L, 329832L),
Day = c("Monday",
"Tuesday", "Wednesday", "Thursday"), Score = c(75L, 83L, 90L,
40L)), class = "data.frame", row.names = c(NA, -4L))
假設您的數據存儲在 data.frame 中,您可以使用dplyr
和tidyr
:
df %>%
select(-ID) %>%
pivot_wider(names_from=Day, values_from=Score)
返回
# A tibble: 1 x 4
Monday Tuesday Wednesday Thursday
<dbl> <dbl> <dbl> <dbl>
1 75 83 90 40
使用t
並設置名稱:
setNames(as.data.frame(t(df$Score)), df$Day)
Output
# Monday Tuesday Wednesday Thursday
# 75 83 90 40
你可以使用 tidyr:
library(tidyr)
data <- data.frame(day = c("Monday", "Tuesday", "Wednesday", "Thursday"),
val = c(12,75,9,38) )
data %>% spread(day,val)
結果:
Monday Thursday Tuesday Wednesday
12 38 75 9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.