如何用dplyr在R中基于条件转换指定格式的Dataframe
使用dplyr+tidyr实现数据框格式转换
可以用dplyr配合同属tidyverse的tidyr包完成转换,无需拆分创建多个tibble,直接在原数据框上操作:
假设你的原数据框名为df,执行以下代码:
library(dplyr) library(tidyr) df_transformed <- df %>% # 将color列的取值转为列名,amount列的值对应填充 pivot_wider(names_from = color, values_from = amount) %>% # 把原fruit列重命名为Apples rename(Apples = fruit) %>% # 将Apples列的内容替换为# mutate(Apples = "#")
转换后得到的数据框如下:
| Apples | red | green | orange |
|---|---|---|---|
| # | 20 | 11 | 15 |
如果需要将列名首字母大写(比如red改成Red),可以追加rename_with步骤:
df_transformed <- df %>% pivot_wider(names_from = color, values_from = amount) %>% rename(Apples = fruit) %>% mutate(Apples = "#") %>% rename_with(stringr::str_to_title, everything())
调整后结果:
| Apples | Red | Green | Orange |
|---|---|---|---|
| # | 20 | 11 | 15 |
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

