r - 将单行数据框中的所有列“旋转更长”为两个“值”列
问题描述
标题很复杂,但我不知道如何用语言表达这个问题。所以我来演示一下。
这是我的问题,具有所需的输出:
library(tibble)
# Input:
tribble(
~n_1, ~n_2, ~n_3, ~pct_1, ~pct_2, ~pct_3,
10, 20, 30, 0.1, 0.2, 0.3
)
#> # A tibble: 1 x 6
#> n_1 n_2 n_3 pct_1 pct_2 pct_3
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 10 20 30 0.1 0.2 0.3
# Desired output:
tribble(
~name, ~n, ~pct,
1, 10, 0.1,
2, 20, 0.2,
3, 30, 0.3
)
#> # A tibble: 3 x 3
#> name n pct
#> <dbl> <dbl> <dbl>
#> 1 1 10 0.1
#> 2 2 20 0.2
#> 3 3 30 0.3
我试过tidyr::pivot_longer()
了,但我做错了。有什么办法吗?
解决方案
一种选择可能是:
df %>%
pivot_longer(everything(),
names_to = c(".value", "name"),
names_pattern = "(.*)_(.)")
name n pct
<chr> <dbl> <dbl>
1 1 10 0.1
2 2 20 0.2
3 3 30 0.3
推荐阅读
- authentication - 我可以通过代理登录 Jira。我可以从本地主机进入登录页面。仅来自本地主机的身份验证失败
- python-3.x - 如何在请求模拟中模拟多个网址
- javascript - Opencart 3.0.3 响应式移动折叠菜单在单击 ahref 后保持打开状态
- python - 如何在没有新 url 页面的情况下让 Django 用户注销?
- google-apps-script - 谷歌表格中是否有办法选择单元格列表作为数组用作连接表格中的参数?
- php - Laravel 基于语言环境的动态路由
- r - 将日期从 stata 数据转换为 r
- testing - 是否可以使用 JSDocs 为 TestCafe 测试编写文档?
- c# - 合并列表的 C# 集合
有一个列表 > - python - 如何在某个值后停止显示 x 标签