r - 按列分组到行值
问题描述
我正在尝试将行分组到列。在我的数据框 df 中,我需要按 A1 列分组,并在新的变异列 X1、X2 和 X3 中获取相应的 B1 值。
df <- data.frame(A1 = c("a is a cat","b is a basket","a is a cat","c for c2","b is a basket"),
B1 = c("alpha in","for beta","for gamma","for ceta","alpha in"))
df
A1 B1
1 a is a cat alpha in
2 b is a basket for beta
3 a is a cat for gamma
4 c for c2 for ceta
5 b is a basket alpha in
预期输出:
A1 X1 X2 X3
1 a is a cat alpha in for gamma
2 b is a basket for beta alpha in
3 c for c2 for ceta
解决方案
我们创建一个按“A1”分组的序列并使用pivot_wider
library(dplyr)
library(tidyr)
library(stringr)
df %>%
group_by(A1) %>%
mutate(new = str_c("X", row_number())) %>%
pivot_wider(names_from = new, values_from = B1)
推荐阅读
- azure - 如何将数据(文件夹)从本地专用网络上的服务器迁移到 Azure 数据湖?
- python - 我在 heroku 上运行的 discord.py 机器人不断停止
- angular - 是否可以将 Angular Service Worker 设置为在同一域中的不同路由上禁用?
- ios - SwiftUI Lists + Firebase Firestore,获取数据然后取消获取?(漏洞)
- c# - C# 返回登录用户的数据
- pandas - 如何将 for 循环的结果转换为 pandas 数据框?
- javascript - 将 javascript 数组传递给 canvasjs(图表)脚本
- arduino - 将 Arduino MKR NBIoT 1500 板连接并添加到云服务器
- javascript - 如何检查未插入表中的重复值?
- node.js - 在 node.js 中构建 hmac sha256 哈希算法