2012-03-13 3 views
1

私は、VEH1からVEH8までの8行までの重みと変数を使って、オンボード調査からのデータフレームを取得しました。ラインには「MT - .. 1」から「MT-902」までのラベルが付けられています。私は2つの特定の行の間にいくつの転送があるか知りたい。Rの長いリストの特定の転送(AからBへのペア)をサブセット化するにはどうすればよいですか?

私は "MT-802"が "MT-901"に従うか、それに従うすべてのレコードのためにサブセットを作ったと思っていましたが、それでもやる方法はわかりません。

+0

は、あなたがより詳細にdata.frameを記述することができます生成しますか?つまり、次元、列名、行名は何ですか? – Cyan

+0

130列、33780行あります。重要な変数はSAMPN {サンプル数} expwgt {拡張重み} ROUTE {測線経路}とVEH1〜VEH8 {移動に使用される経路のシーケンス} さらにROUTEも1つの場合に限定するとよいでしょうウェイトがROUTE乗客に拡大するので、2つの望ましいルート.... –

答えて

1

これは実際のstackoverflowに属しますが、ここであなたにいくつかのポインタを与える可能性が何かである:

t1 <- "SAMPN expwgt ROUTE VEH1 VEH2 VEH3 
     1  5  AB MT-..1 MT-..2 NA 
     2  9  AC MT-..1 MT-..2 MT-..3 
     3  3  BC MT-..2 MT-..3 NA 
     4  3  BA MT-..2 MT-..1 NA 
     5  4  CA MT-..3 MT-..2 MT-..1 
     6  4  CB MT-..3 MT-..4 NA 
     7  2  CA MT-..4 NA  NA" 
indat <- read.table(textConnection(t1), header = TRUE) 

colvf <- 4 # column of first VEH in indat 
colvl <- 6 # column of last VEH in indat 
tapply(rep(indat$expwgt, colvl-colvf), 
     list(as.matrix(indat[ ,colvf:(colvl-1)]), 
       as.matrix(indat[ ,(colvf+1):colvl])), sum) 

 MT-..1 MT-..2 MT-..3 MT-..4 
MT-..1  NA  14  NA  NA 
MT-..2  7  NA  12  NA 
MT-..3  NA  4  NA  4 
MT-..4  NA  NA  NA  NA 
関連する問題