以下是示例数据集:

data.frame(
  Index = seq(1,5),
  X_50 = sample(1:5, replace = TRUE),
  X_90 = sample(1:5, replace = TRUE),
  Y_50 = sample(1:5, replace = TRUE),
  Y_90 = sample(1:5, replace = TRUE),
  Z_50 = sample(1:5, replace = TRUE),
  Z_90 = sample(1:5, replace = TRUE)
)
Index X_50 X_90 Y_50 Y_90 Z_50 Z_90
1 3 5 1 10 3 4
2 8 8 6 6 9 7
3 9 3 3 7 7 4
4 3 10 8 10 6 1
5 7 2 3 5 10 8

我正在try 将数据集的列定位为如下所示:

Index percentile_value X Y Z
1 50 3 1 3
1 90 5 10 4
2 50 8 6 9
2 90 8 6 7
3 50 9 3 7
3 90 3 7 4

等等.

我try 了pivot_longer,但没有得到上面的结果.有人能帮帮我吗?谢谢

推荐答案

您可以使用tidyr包中的pivot_longer()功能.

library(tidyr)

df <- data.frame(
        Index = seq(1,5),
        X_50 = sample(1:5, replace = TRUE),
        X_90 = sample(1:5, replace = TRUE),
        Y_50 = sample(1:5, replace = TRUE),
        Y_90 = sample(1:5, replace = TRUE),
        Z_50 = sample(1:5, replace = TRUE),
        Z_90 = sample(1:5, replace = TRUE)
)

df
#>   Index X_50 X_90 Y_50 Y_90 Z_50 Z_90
#> 1     1    2    1    3    5    2    5
#> 2     2    4    1    3    1    4    2
#> 3     3    2    5    5    4    5    2
#> 4     4    1    5    1    5    3    3
#> 5     5    1    2    1    2    1    1

df |> pivot_longer(cols = -Index, 
                   names_to = c(".value", "percentile_value"),
                   names_sep = "_") 
#> # A tibble: 10 × 5
#>    Index percentile_value     X     Y     Z
#>    <int> <chr>            <int> <int> <int>
#>  1     1 50                   2     3     2
#>  2     1 90                   1     5     5
#>  3     2 50                   4     3     4
#>  4     2 90                   1     1     2
#>  5     3 50                   2     5     5
#>  6     3 90                   5     4     2
#>  7     4 50                   1     1     3
#>  8     4 90                   5     5     3
#>  9     5 50                   1     1     1
#> 10     5 90                   2     2     1

创建于2024年4月25日,共有reprex v2.1.0

R相关问答推荐

如何将多个数据帧附加到R中的多个相应的CSV文件中?

如何使用Cicerone指南了解R Shiny中传单 map 的元素?

有没有方法将paste 0功能与列表结合起来?

如何从其他前面列中减go 特定列的平均值?

如何在四进制仪表板值框中显示值(使用shiny 的服务器计算)

在ggplot Likert条中添加水平线

修改用R编写的用户定义函数

删除具有相同标题的tabPanel(shinly)

汇总数据表中两个特定列条目的值

使用R闪光显示所有数据点作为默认设置

对于变量的每个值,仅 Select 包含列表中所有值的值.R

无法正确设置动态创建的Quarto标注的格式

如何在R中描绘#符号?

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

如何将使用rhandsontable呈现的表值格式化为百分比,同时保留并显示完整的小数精度?

如何使用前缀作为匹配来连接数据帧?

在使用具有Bray-Curtis相似性的pvCluust时计算p值

在R中的数据框上使用Apply()函数时,如何保留非数字列?

如果条件匹配,则使用Mariate粘贴列名

长/纬点继续在堪萨斯-SF结束,整齐的人口普查