R 有没有一种方法可以创建没有聚合值的子集数据透视表?
我已经和这些问题斗争了一段时间,但是有没有一种方法可以在R中实现这一点R 有没有一种方法可以创建没有聚合值的子集数据透视表?,r,pivot-table,reshape2,R,Pivot Table,Reshape2,我已经和这些问题斗争了一段时间,但是有没有一种方法可以在R中实现这一点 Source Table ╔═══════════╦══════╦═══════╗ ║ TEST_NAME ║ SBNO ║ VAL ║ ╠═══════════╬══════╬═══════╣ ║ Test1 ║ 1 ║ 0.304 ║ ║ Test1 ║ 2 ║ 0.31 ║ ║ Test1 ║ 3 ║ 0.306 ║ ║ Test2 ║ 1 ║ 2.3
Source Table
╔═══════════╦══════╦═══════╗
║ TEST_NAME ║ SBNO ║ VAL ║
╠═══════════╬══════╬═══════╣
║ Test1 ║ 1 ║ 0.304 ║
║ Test1 ║ 2 ║ 0.31 ║
║ Test1 ║ 3 ║ 0.306 ║
║ Test2 ║ 1 ║ 2.3 ║
║ Test2 ║ 2 ║ 2.5 ║
║ Test2 ║ 3 ║ 2.4 ║
║ Test3 ║ 1 ║ PASS ║
║ Test3 ║ 2 ║ PASS ║
╚═══════════╩══════╩═══════╝
Desired Output
╔══════════════════════════╗
║ SBNO Test1 Test2 Test3 ║
╠══════════════════════════╣
║ 1 0.304 2.3 PASS ║
║ 2 0.31 2.5 PASS ║
║ 3 0.306 2.4 NULL ║
╚══════════════════════════╝
*此示例未细分
多谢各位,
Rodrigo几内亚考虑您的数据。帧为
df
,我们可以使用spread
> library(tidyr)
> df %>% spread(TEST_NAME, VAL)
SBNO Test1 Test2 Test3
1 1 0.304 2.3 PASS
2 2 0.31 2.5 PASS
3 3 0.306 2.4 <NA>
>库(tidyr)
>df%>%排列(测试名称,VAL)
SBNO测试1测试2测试3
1 10.304 2.3通过
2 0.31 2.5通过
3 3 0.306 2.4
看起来像是@JilberUrbina击败了我,但这里有一个基本相同的工作示例:
df <- data.frame(
name = paste0("test", c(1,1,1,2,2,2,3,3)),
sbno = rep(1:3, 3)[1:8],
val = c(0.304, 0.31, 0.306, 2.3, 2.5, 2.4, "pass", "pass"),
stringsAsFactors = FALSE
)
tidyr::spread(df, key="name", value="val", convert=TRUE)
df您能用dput(SourceTable)
的输出编辑问题吗?我意识到你在用框架构建表格时遇到了很多麻烦,但在R会话中重新创建表格对我们来说更困难。