繁体   English   中英

将dataframe1转换为dataframe2,其中列的值成为新列

[英]Transforming dataframe1 to dataframe2 where the values of a column become new columns

我正在使用 R 中的数据帧,我想将表 1(image1)的格式更改为表 2(image2)。

我知道我有 50 个“城市”可能的值,从 1 到 50。我想要的是“城市”的这些值成为不同的列,因此在每个这些值下方显示“房屋”的数量。 最后,每个国家/地区只有一行,52 列。 ('数字','国家',1,2,3...,50)。 (这是一个简化版本,主要版本有更多的“数字”值,所以我正在寻找一种“快速”工作的解决方案,运行时间不长)

在此处输入图像描述

在此处输入图像描述

如果df是您的 dataframe 并且列是小写的,则以下 dplyr::pivot_wider 将为您提供帮助。

library(dplyr)
df %>% 
  pivot_wider(id_cols=c(number,country),names_from=city,values_from=house)

给你这个output。

# A tibble: 3 × 7
  number country `21`  `23`  `24`  `22`  `25` 
   <int>   <int> <chr> <chr> <chr> <chr> <chr>
1   6205       2 2     a     5     NA    NA   
2   6205       3 NA    5     5     1     5    
3   6205       4 4     2     7     3     2    
> 

建议不要使用数字 dataframe 列名,因此非常适合重新查看您的命名约定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM