我有责任确保正在学习R的同事在需要的课程之前了解基础知识.这位同事经历了几个教程,所以希望她没事,但我想给她一个测试来衡量它.
因此,我想知道是否有人知道网上是否有适合的材料?并且可能有问题和答案.
PS交叉发布到r-help@stat.math.ethz.ch
我有以下数据结构
ID Type Values
1 A 5; 7; 8
2 A 6
3 B 2; 3
Run Code Online (Sandbox Code Playgroud)
我想使用R将其重塑为以下内容:
ID Type Values
1 A 5
1 A 7
1 A 8
2 A 6
3 B 2
3 B 3
Run Code Online (Sandbox Code Playgroud)
我一直试图找出如何用plyr做到这一点,但没有任何成功.做这个的最好方式是什么?
我有两个ggplot geom_tile图,我使用来自gridExtra库的grid.arrange()放在一起.这是结果
library(ggplot2)
library(plyr)
p3 <- ggplot2(...)
p4 <- ggplot2(...)
grid.arrange(p3, p4, ncol=2)
Run Code Online (Sandbox Code Playgroud)

我想得到它,以便两个地块具有相同的高度并对齐.我用gtable来摆弄一下直接改变尺寸,但这似乎没有成功.
gA <- ggplot_gtable(ggplot_build(p3))
gB <- ggplot_gtable(ggplot_build(p4))
maxHeight <- unit.pmax(gA$heights[2:3], gB$heights[2:3])
gA$heights[2:3] <- maxHeight
gB$heights[2:3] <- maxHeight
grid.arrange(gA, gB, ncol=2)
Run Code Online (Sandbox Code Playgroud)
错误信息:
Error in grid.Call.graphics(L_setviewport, pvp, TRUE) :
non-finite location and/or size for viewport
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
---可重复的例子---
library(ggplot2)
library(plyr)
temp_plot <- structure(list(Sample = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, …Run Code Online (Sandbox Code Playgroud)