2012-02-23 48 views
1

這個問題比類似here更先進。約20繪製矩陣與R像data.frame

字符的預計量。當我在繪製東西data.frame,我這樣做:

# t1 is a df 
> plot((q1*s1+q2*s2)/(s1+s2),data=t1) 

,但我可以重複使用這種形式的矩陣?

[最後工作MVO,謝謝!]

> M<-matrix(data=rnorm(30),ncol=2,dimnames=list(NULL,c('q1','q2'))) 
> plot(M) 
> x=1:dim(M)[1] 
> plot(x~q1/q2,data=data.frame(M),type='l') 

enter image description here

回答

1

您可以使用這個

with(data.frame(mymatrix), plot((q1*s1+q2*q2)/(s1+s2))) 

希望這有助於

+0

+1這工作,但爲什麼不是另一種方法,仍然在想。 MVO加入試用 - 我應該以不同的方式啓動變種嗎? – hhh 2012-02-23 12:50:58

+1

同樣,公式方法只在您提供*有效公式時才起作用。 - 您需要繪製某些東西與其他東西(請注意我給出的示例中的「〜」符號)。只提供一個值並不是一個有效的公式,因爲R不知道它是y還是x或者要對它進行繪圖。 – 2012-02-23 12:53:16

1

那種繪製的(你在那裏輸入包括數據幀的列公式)僅適用於數據幀。

colnames(mymatrix)如果是q1s1等,那麼就可以實現通過執行影響:

plot(myformula, data=data.frame(mymatrix)) 

即強迫矩陣到一個數據幀,然後使用公式。

更新

一個例子證明這個工程:

# construct a matrix 
> mymatrix <- array(runif(10*2),dim=c(10,2)) 
# give it column names X and Y 
> colnames(mymatrix)<-c('X','Y') 
> mymatrix 
       X   Y 
[1,] 0.07346608 0.81321578 
[2,] 0.09525474 0.17852467 
[3,] 0.81246522 0.45747972 
[4,] 0.01286714 0.82517127 
[5,] 0.77554012 0.87725725 
[6,] 0.71908435 0.71628493 
[7,] 0.13212848 0.67827601 
[8,] 0.65993809 0.01650703 
[9,] 0.11385161 0.99433644 
[10,] 0.22750439 0.45611635 
# plot Y vs X -- note you need to convert the matrix to a data frame first. 
> plot(Y~X,data.frame(mymatrix)) 
+0

啊,這是行不通的因爲你給出的例子不起作用(t1是數據幀的那個例子) 最佳)。 – 2012-02-23 12:33:38

+1

我舉了一個例子來展示我的解決方案。你的理由不是因爲你給出的第一行代碼作爲例子('當我繪製data.frame之類的東西時,我喜歡')不起作用 - 它不是一個有效的公式。我只是在我的回答中使用了你的例子,因爲你說它在你的問題中起作用,並且我假設它的確如此,因爲我沒有樣本數據來重新創建你的問題。 – 2012-02-23 12:39:08

+1

如果你使用公式方法,它的工作原理是嘗試繪圖(Y/X,data.frame(mymatrix))...不起作用,因爲在默認方法中沒有「數據」參數!所以我同意數學咖啡第一個例子是無效的,即使有data.frame – dickoa 2012-02-23 12:44:27