2017-06-21 60 views
0

我想在v1和v4之间为(v2,v3,v5)的相同值的子集绘制图表,并且也在同一图表中绘制该图表。我的数据集如下使用基于R中多个列的值绘制图表

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 

group_by给出与上面相同的矩阵。

例: 图一个这些值

v1 v2 v3 v4  v5 
3 10 20 1 0.5000000 
1 10 20 2 0.5000000 
+0

请澄清:什么样的图形,这值怎么绘制?请分享什么可行,什么不可行,详细说明你已经尝试了什么。 –

回答

0

不漂亮的代码的图形,但低于确实要在基地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) 
} 
+0

非常感谢......这正是我想要的。 – user2999110

+0

@ user2999110不客气。如果是这样,那么请考虑接受答案(在向上/向下投票按钮下面的勾号)。 –