看板 R_Language 關於我們 聯絡資訊
我問題是這樣的 我有如下的字串 基本上是 A B C D E F G 這七個字母的組合 白色的字體不是我想要計數的範圍 所以不管是x或這七個字母 都不重要 黃色字體 才是我想要計數的長度 也就是每組字串的後面七個 位置是指字串的位置 原諒我10後面數字會黏一塊 我就不打了 長度指的就是字串的長度 位置 長度 1 2 3 4 5 6 7 8 9 ....... 29 9 B A G F F A B F C 9 B A G F F A B F C 13 x x x F A A B C C G B B F 13 x x x F A A B F C G F B F 15 x x x x G B B F C G F E E B A 15 x x x x G B B F G G F E E B A 25 x x x x x x x x x x x x E E B A C A E E G F G A A 29 x x x x x x x x x x x x x x x x x x G F G F A A C D A B G 29 x x x x x x x x x x x x x x x x x x G F G F A C C D A B G 相同的長度為一組字串 我想要計算同一組的計數 例如長度9的 我想要得到如下的結果: -1 ~ -7 表示從後面倒數過來的位置 -7 -6 -5 -4 -3 -2 -1 A 1 B 1/2 C 1/3 D E F 1 1 1 G 1 原則就是同一組長度 重覆出現的字母 算一次就好 所以長度9雖然有兩條字串 在-7這位置都是G 但是G只要算一次 另一個重點就是那個1/2的算法, 因為B這個字母除了是長度9的-3這位置外 同時也是長度13這組 -7 的位置 所以B的次算 要分給兩組 各為0.5次 其他沒出現的就為0 以此類推 我再列一下長度15會有的結果: -7 -6 -5 -4 -3 -2 -1 A 1 B 1 C 1/3 D E 1 1 F 1 G 1 1/2 C這個字母同時出現在長度9、長度13、長度15 所以次數是1/3 分別是長度9的-1 長度13的-5 長度15的-7 所以我其實就是想要每一組長度字串的這個計數結果 這樣舉例不知是否清楚 @@ 我想了一天 還是不知道有什麼具體的寫法 謝謝各位指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.207.174 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1498665340.A.4BC.html ※ 編輯: eco100 (1.164.207.174), 06/28/2017 23:58:33
x88776544pc: 如果把資料補齊成 k x 29 的矩陣,用 length 跟 data 06/29 00:22
x88776544pc: [,i] 作成的 table 就可以看出第 i 行下某類在不同長 06/29 00:22
x88776544pc: 度下出現的次數 06/29 00:22
clsmbstu: 好像沒這麼簡單 它的原點會隨資料長度移動 @@ 06/29 00:42
clsmbstu: 以data[,4]來說,只有data[1:2,4]有意義 06/29 00:46
clsmbstu: data[,7]裡B在各種長度都出現兩次 可是這不是原PO要的 06/29 00:50
x88776544pc: sum(table(length,data[,i])[,data[,i][jth]]!=0) 06/29 06:37
x88776544pc: 算第j列的類別在第i行出現次數不為零的個數就可以了 06/29 06:40