2012-02-23 3 views
1

이 질문은 비슷한 here보다 앞서 있습니다.R like data.frame을 사용하여 행렬을 그립니다.

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

을하지만 난 행렬이 양식을 다시 사용할 수 있습니다 : 나는 data.frame에서 일을 플롯하면 20

에 대한 문자의 예상 금액, 나는 그것을 좋아합니까?

[마지막으로, 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

+1

다시 말하지만, 수식 메서드는 * 유효한 수식을 제공 할 때만 작동합니다 * - 뭔가 다른 것을 대입 할 필요가 있습니다 (예제에서'~'기호를주의하십시오). R이 y 또는 x인지 또는 무엇을 대입해야할지 모르기 때문에 단 하나의 값만 제공하는 것은 유효한 수식이 아닙니다. –

1

플롯의 종류 (당신이 dataframe의 열을 포함하는 수식을 입력 할 경우) 데이터 프레임에 대해서만 사용할 수 있습니다.

q1, s1는 등, 그런 다음을 수행하여 영향을 달성 할 수있는 경우 colnames(mymatrix) :

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

은 즉, dataframe에 행렬을 강요 다음 식을 사용한다.

업데이트

예를 보여주는이 작품 :

# 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이 데이터 프레임 인 경우 상단). –

+1

나는 내 솔루션이 작동하는 것을 보여주는 예를 제시했습니다. 이유는 당신이 예제로 제시 한 코드의 첫 번째 줄 ('data.frame과 같은 것들을 플로팅 할 때, 나는 좋아한다')이 작동하지 않기 때문입니다. 이것은 유효한 수식이 아닙니다. 나는 당신의 질문에서 일했다고 말했기 때문에 당신의 예제를 나의 대답에만 사용했고 당신의 문제를 재현하기위한 샘플 데이터가 없었기 때문에 나는 그것을 취한 것으로 생각했다. –

+1

수식 방법을 사용하는 경우 작동하지만 기본 방법에 "데이터"매개 변수가 없으므로 plot (Y/X, data.frame (mymatrix)) ...이 작동하지 않습니다. 그래서 mathematical.coffee에 동의합니다. 첫 번째 예제가 data.frame에도 적용되지 않았습니다 .frame – dickoa

관련 문제