2012-10-26 3 views
1

저는 R이 새롭고 배열로 고생하고 있습니다. 제 질문은 매우 간단하지만 웹이나 R 문서에서 쉬운 대답을 찾지 못했습니다.R 열과 행 번호가있는 선형 테이블에서 행렬을 생성합니다.

는 내가 새로운 매트릭스를 생성하는 데 사용할 열 및 행 번호 테이블이

원래 테이블 :

  • V1 등 :

    V1 V2  pval 
    1 1 2 5.914384e-13 
    2 1 3 8.143390e-01 
    3 1 4 7.587818e-01 
    4 1 5 9.734698e-12 
    5 1 6 7.812521e-19 
    

    내가 사용하고자하는 새로운 행렬의 열 번호. 행 번호 값으로

  • pvals
  • V2

대상으로 매트릭스 :

 1   2  3  4 
1 0   5e-1 8e-1 7e-1 
2 5e-13  0 
3 8e-1    0 
4 7e-1      0 

답변

1
#some data 
set.seed(42) 
df <- data.frame(V1=rep(1:6,each=3),V2=rep(1:3,6),pval=runif(18,0,1)) 
df <- df[df$V1!=df$V2,] 

# V1 V2  pval 
#2 1 2 0.560332746 
#3 1 3 0.904031387 
#4 2 1 0.138710168 
#6 2 3 0.946668233 
#7 3 1 0.082437558 
#8 3 2 0.514211784 
# ... 

#use dcast to change to wide format 
library(reshape2) 
df2 <- dcast(df,V2~V1,fill=0) 

# V2   1   2   3   4   5   6 
#1 1 0.0000000 0.1387102 0.08243756 0.9057381 0.7375956 0.685169729 
#2 2 0.5603327 0.0000000 0.51421178 0.4469696 0.8110551 0.003948339 
#3 3 0.9040314 0.9466682 0.00000000 0.8360043 0.3881083 0.832916080 

#in case you really want a matrix object 
m <- as.matrix(df2[,-1]) 
+0

은 대단히 롤랜드 감사합니다, 그 완벽이야! – OLiviera

+0

@OLiviera 옆에있는 체크 표시를 눌러 대답을 수락하십시오. – Roland

관련 문제