2017-06-21 84 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不客氣。如果是這樣,那麼請考慮接受答案(在向上/向下投票按鈕下面的勾號)。 –