首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据帧从行更改为列结构

如何将数据帧从行更改为列结构
EN

Stack Overflow用户
提问于 2022-01-17 15:13:47
回答 1查看 33关注 0票数 0

我在R中有以下数据帧。

代码语言:javascript
复制
ID   | Year_Month | Amount
           
10001|2021-06     |  85
10001|2021-07     |  32.0
20032|2021-08     |  63
20032|2021-09     |  44.23
20033|2021-11     |  10.90

我想将这些数据转换为如下所示:

代码语言:javascript
复制
ID   | 2021-06  | 2021-07 |2021-08 | 2021-09 | 2021-11
           
10001|    85    |   32    |   0    |    0    |   0
20032|     0    |   0     |   63   |  44.23  |   0
20033|     0    |   0     |   0    |   0     |  10.90

总计将在基于Year_Month列的列上。有人能帮忙吗?我试过使用转置器,但没有起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-17 18:49:05

您应该查看tidyverse包,它有一些非常好的数据争用功能。

代码语言:javascript
复制
## Loading the required libraries
library(dplyr)
library(tidyverse)

## Creating the dataframe
df = data.frame(ID=c(10001,10001,20032,20032,20033),
           Date=c('2021-06','2021-07','2021-08','2021-09','2021-11'),
           Amount = c(85,32,63,44.2,10.9))

## Pivot longer to wider
df_pivot = df %>%
  pivot_wider(names_from = Date, values_from = c(Amount)) 

## Replacing NA with 0
df_pivot[is.na(df_pivot)] = 0


df_pivot
# A tibble: 3 x 6
     ID `2021-06` `2021-07` `2021-08` `2021-09` `2021-11`
  <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
1 10001        85        32         0       0         0  
2 20032         0         0        63      44.2       0  
3 20033         0         0         0       0        10.9
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70743589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档