Tim*_*cox 3 pivot r dplyr tidyr
这是我正在使用的示例代码
library(dplyr)
naics <- c("000000","000000",123000,123000)
year <- c(2020,2021,2020,2021)
January <- c(250,251,6,9)
February <- c(252,253,7,16)
March <- c(254,255,8,20)
sample2 <- data.frame (naics, year, January, February, March)
Run Code Online (Sandbox Code Playgroud)
这是预期的结果
Jan2020 Feb2020 March2020 Jan2021 Feb2021 March2021
000000 250 252 254 251 253 255
123000 6 7 8 9 16 20
Run Code Online (Sandbox Code Playgroud)
这是用pivot_wider完成的还是更复杂?
我们pivot_wider通过选择values_from月份列names_from作为“年”来使用,然后更改列名称格式,names_glue如果需要,将“naics”转换为行名称column_to_rownames(来自tibble)
library(tidyr)
library(tibble)
pivot_wider(sample2, names_from = year, values_from = January:March,
names_glue = "{substr(.value, 1, 3)}{year}")%>%
column_to_rownames('naics')
Run Code Online (Sandbox Code Playgroud)
-输出
Jan2020 Jan2021 Feb2020 Feb2021 Mar2020 Mar2021
000000 250 251 252 253 254 255
123000 6 9 7 16 8 20
Run Code Online (Sandbox Code Playgroud)