我如何旋转或转置 R 中 table 中的特定列?
How do i pivot or transpose specific columns in a table in R?
我有一个看起来像这样的收入数据集。
CITY
2014
2015
AA
21
22
BB
21
24
我正在尝试找到一种使数据集看起来像这样的方法。
CITY
Income
Year
AA
21
2014
AA
21
2014
BB
22
2015
BB
24
2015
我尝试使用 tidyr 包来解决这个问题,但到目前为止我还没有成功。是否有任何其他包或代码可以进行此转换?
谢谢!
你想要pivot_longer
。请记住,R 不喜欢将数字作为列名。
df <- tibble(city=c("AA","BB"), `2014`=c(21,21), `2015`=c(22, 24))
df %>% pivot_longer(c(`2014`, `2015`), names_to="Year", values_to="Income")
# A tibble: 4 x 3
city Year Income
<chr> <chr> <dbl>
1 AA 2014 21
2 AA 2015 22
3 BB 2014 21
4 BB 2015 24
欢迎来到 Stack Overflow Daya!以后请努力post一个reproducible example。这些有助于受访者更好地理解和诊断您的问题。
使用tidyr
包中的pivot_longer()
功能即可实现。下面是一个可重现的例子:
library(tidyr)
city<-c("AA", "BB")
y14<-c(21, 21)
y15<-c(22,24)
DF<-data.frame(city, y14, y15)
colnames(DF)<-c("CITY",2014, 2015)
DF %>% pivot_longer(cols= c(2:3), names_to="Year", values_to="Income")
我有一个看起来像这样的收入数据集。
CITY | 2014 | 2015 |
---|---|---|
AA | 21 | 22 |
BB | 21 | 24 |
我正在尝试找到一种使数据集看起来像这样的方法。
CITY | Income | Year |
---|---|---|
AA | 21 | 2014 |
AA | 21 | 2014 |
BB | 22 | 2015 |
BB | 24 | 2015 |
我尝试使用 tidyr 包来解决这个问题,但到目前为止我还没有成功。是否有任何其他包或代码可以进行此转换?
谢谢!
你想要pivot_longer
。请记住,R 不喜欢将数字作为列名。
df <- tibble(city=c("AA","BB"), `2014`=c(21,21), `2015`=c(22, 24))
df %>% pivot_longer(c(`2014`, `2015`), names_to="Year", values_to="Income")
# A tibble: 4 x 3
city Year Income
<chr> <chr> <dbl>
1 AA 2014 21
2 AA 2015 22
3 BB 2014 21
4 BB 2015 24
欢迎来到 Stack Overflow Daya!以后请努力post一个reproducible example。这些有助于受访者更好地理解和诊断您的问题。
使用tidyr
包中的pivot_longer()
功能即可实现。下面是一个可重现的例子:
library(tidyr)
city<-c("AA", "BB")
y14<-c(21, 21)
y15<-c(22,24)
DF<-data.frame(city, y14, y15)
colnames(DF)<-c("CITY",2014, 2015)
DF %>% pivot_longer(cols= c(2:3), names_to="Year", values_to="Income")