r - pivot_longer 但对于多组列
问题描述
我有一个数据框如下:
Z1 Z2 Y1 Y2 smpl
0.451 0.333 0.034 0.173 A
0.491 0.270 0.033 0.207 B
Z1 和 Z2 列是来自同一样本的多个观测值。Y1 和 Y2 也是如此。
我需要合并列 Z1 和 Z2,以及列 Y1 和 Y2。产生以下内容:
Z Y smpl
0.451 0.034 A
0.333 0.173 A
0.491 0.033 B
0.270 0.207 B
我确信解决方案是微不足道的,但是......好吧,我有点n00b,因此我也被卡住了。我怎样才能做到这一点?
解决方案
您可以使用 :
tidyr::pivot_longer(df, cols = -smpl,
names_to = '.value',
names_pattern = '([A-Z])')
# A tibble: 4 x 3
# smpl Z Y
# <chr> <dbl> <dbl>
#1 A 0.451 0.034
#2 A 0.333 0.173
#3 B 0.491 0.033
#4 B 0.27 0.207
推荐阅读
- php - 在渲染之前重新安排对象上的 CakePHP JSON 响应
- python - argparse 子命令和组:在自己的组上的子命令中设置帮助对话框,而不隐藏在顶级帮助对话框中
- google-sheets - 如何编写查询函数以从“数据”表中过滤销售额
- c# - HttpRequestMessage.Headers 和 HttpRequestMessage.Content.Headers 之间的区别
- coq - Coq 中的证明,在构造函数中使用命名参数
- python - 使用 python 使用 Google Drive 进行 Google 身份验证
- json - Powershell 创建 pscustomobject 对象
- regex - .htaccess 拒绝点文件但允许letsencrypt
- bazel - 如何在 Bazel 中加载 local_repository 对外部依赖项的依赖项?
- python - 将类型列从字符串更改为数字时出现 Databricks 错误