我想为(v2,v3,v5)的相等值的子集在v1和v4之间绘制一个图,在同一图中也是如此。我的数据集如下
v1 v2 v3 v4 v5
3 10 20 1 0.5000000
1 10 20 2 0.5000000
2 10 30 1 0.3333333
1 10 30 2 0.3333333
1 10 40 1 0.2500000
1 10 45 1 0.2222222
1 10 45 1 0.2222222group_by给出了与上面相同的矩阵。
例如:绘制这些值的一张图
v1 v2 v3 v4 v5
3 10 20 1 0.5000000
1 10 20 2 0.5000000发布于 2017-06-21 18:00:27
不是很漂亮的代码,但是下面的代码在base R中做了你想要的。
df <- read.table(header = TRUE, text =
"v1 v2 v3 v4 v5
3 10 20 1 0.5000000
1 10 20 2 0.5000000
2 10 30 1 0.3333333
1 10 30 2 0.3333333
1 10 40 1 0.2500000
1 10 45 1 0.2222222
1 10 45 1 0.2222222")
cols <- c("v2", "v3", "v5")
df.u <- unique(df[,cols]) # Get unique rows
# Initialise plot
plot(1, type = "n", xlim = range(df[,"v1"]), ylim = range(df[,"v4"]))
for (i in seq_len(nrow(df.u))) {
# Subset to unique row
df.sub <- df[df$v2==df.u$v2[i] & df$v3==df.u$v3[i] & df$v5==df.u$v5[i], ]
# Plot
lines(df.sub$v1, df.sub$v4, col = i, type = "b", pch = i, lty = i)
}https://stackoverflow.com/questions/44672294
复制相似问题