r - 熔化具有多个同名“id.vars”的数据框
问题描述
我有一个包含多个同名列的数据框:
> df <- data.frame(X1=c(1:4),Y1=c(16:13),X2=c(4:7),Y2=c(-1:-4),X3=c(3:6),Y3=c(2:-1))
> df
X1 Y1 X2 Y2 X3 Y3
1 1 16 4 -1 3 2
2 2 15 5 -2 4 1
3 3 14 6 -3 5 0
4 4 13 7 -4 6 -1
> names(df)[c(1,3,5)] <- "X"
我想用 id.vars='X' 融化这个数据框,但是只有第一个 'X' 列被识别。这给了我:
> df2 <- melt(df, id.vars = 'X')
> df2
X variable value
1 1 Y1 16
2 2 Y1 15
3 3 Y1 14
4 4 Y1 13
5 1 Y2 -1
6 2 Y2 -2
7 3 Y2 -3
8 4 Y2 -4
9 1 Y3 2
10 2 Y3 1
11 3 Y3 0
12 4 Y3 -1
我想要的输出是:
> df2
X variable value
1 1 Y1 16
2 2 Y1 15
3 3 Y1 14
4 4 Y1 13
5 4 Y2 -1
6 5 Y2 -2
7 6 Y2 -3
8 7 Y2 -4
9 3 Y3 2
10 4 Y3 1
11 5 Y3 0
12 6 Y3 -1
解决方案
我们可以melt
使用data.table
library(data.table)
names(df) <- make.unique(names(df))
melt(setDT(df), measure = patterns("^X", "^Y"))
推荐阅读
- javascript - 如何编写测试以检查是否在 Jest 中为 React 应用程序设置了输入字段的值?
- networking - 连接到 web3 按钮和元掩码的问题
- discord.py - 这个不和谐的齿轮有什么问题?
- c++ - 多态性:原始指针与智能指针
- javascript - 错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:在 package.json 中没有定义“出口”主要
- javascript - 使用 React Natives 的 usestate 函数后,包含方法失败
- django - 多个不同的异物作为“资源”
- sql - 每个组的第二个最高值 - SQL
- repast-hpc - Repast HPC 未在 UBUNTU 上正确安装
- r - 在 R 中转换一般时间(无日期)