转换为宽格式的 R 函数
R function to cast to wide format
可能是一个相当简单的问题,但是到目前为止我还没有能够解决它。我的目标是在 R 中重新设计具有以下格式的数据框:
var1
year
Jan
Feb
March
x1
2019
1
2
3
x2
2020
2
2
3
x1
2020
1
2
2
x2
2019
3
1
1
宽格式:结果如下 table:
year
2020
2020
2020
2019
2019
2019
Jan
Feb
March
Jan
Feb
March
x1
1
2
2
1
2
3
x2
2
2
3
3
1
1
非常感谢您的任何建议或帮助!!
这很有用:
library(tidyverse)
#Code
new <- df %>% pivot_wider(names_from = year,values_from=Jan:March)
输出:
# A tibble: 2 x 7
var1 Jan_2019 Jan_2020 Feb_2019 Feb_2020 March_2019 March_2020
<chr> <int> <int> <int> <int> <int> <int>
1 x1 1 1 2 2 3 2
2 x2 3 2 1 2 1 3
使用了一些数据:
#Data
df <- structure(list(var1 = c("x1", "x2", "x1", "x2"), year = c(2019L,
2020L, 2020L, 2019L), Jan = c(1L, 2L, 1L, 3L), Feb = c(2L, 2L,
2L, 1L), March = c(3L, 3L, 2L, 1L)), class = "data.frame", row.names = c(NA,
-4L))
data.table
方式为:
library(data.table)
dcast(setDT(df), var1~year, value.var = c('Jan', 'Feb', 'March'))
# var1 Jan_2019 Jan_2020 Feb_2019 Feb_2020 March_2019 March_2020
#1: x1 1 1 2 2 3 2
#2: x2 3 2 1 2 1 3
可能是一个相当简单的问题,但是到目前为止我还没有能够解决它。我的目标是在 R 中重新设计具有以下格式的数据框:
var1 | year | Jan | Feb | March |
---|---|---|---|---|
x1 | 2019 | 1 | 2 | 3 |
x2 | 2020 | 2 | 2 | 3 |
x1 | 2020 | 1 | 2 | 2 |
x2 | 2019 | 3 | 1 | 1 |
宽格式:结果如下 table:
year | 2020 | 2020 | 2020 | 2019 | 2019 | 2019 |
---|---|---|---|---|---|---|
Jan | Feb | March | Jan | Feb | March | |
x1 | 1 | 2 | 2 | 1 | 2 | 3 |
x2 | 2 | 2 | 3 | 3 | 1 | 1 |
非常感谢您的任何建议或帮助!!
这很有用:
library(tidyverse)
#Code
new <- df %>% pivot_wider(names_from = year,values_from=Jan:March)
输出:
# A tibble: 2 x 7
var1 Jan_2019 Jan_2020 Feb_2019 Feb_2020 March_2019 March_2020
<chr> <int> <int> <int> <int> <int> <int>
1 x1 1 1 2 2 3 2
2 x2 3 2 1 2 1 3
使用了一些数据:
#Data
df <- structure(list(var1 = c("x1", "x2", "x1", "x2"), year = c(2019L,
2020L, 2020L, 2019L), Jan = c(1L, 2L, 1L, 3L), Feb = c(2L, 2L,
2L, 1L), March = c(3L, 3L, 2L, 1L)), class = "data.frame", row.names = c(NA,
-4L))
data.table
方式为:
library(data.table)
dcast(setDT(df), var1~year, value.var = c('Jan', 'Feb', 'March'))
# var1 Jan_2019 Jan_2020 Feb_2019 Feb_2020 March_2019 March_2020
#1: x1 1 1 2 2 3 2
#2: x2 3 2 1 2 1 3