2017-07-11 6 views
0

を選択:私は文字Cで終わるsample_idsだけでなく、TARGET_IDを選択するためにdplyrの選択機能を使用したいDplyrは、私はこのようになりますDF始まるよends_with

sample_id  target_id length  eff_length est_counts tpm class 
1 SRR3884838C  (A)n  69   70   0  0.00000  0 
2 SRR3884838C  (AC)n  69   70   0  0.00000  0 
3 SRR3884838C  (AG)n  69   70   0  0.00000  0 
4 SRR3884838C  (AT)n  69   70   5  15.98870 0 

とtpm。

例データ:私sample_id、TARGET_IDとTPMを与えるが、Cの例で終わるだけsample_id年代を選択しない

teC <- select(te, (sample_id, ends_with("C")), target_id, tpm) 

> dput(droplevels(head(te,4))) 
structure(list(sample_id = structure(c(1L, 1L, 1L, 1L), .Label = "SRR3884838C", class = "factor"), 
target_id = structure(1:4, .Label = c("(A)n", "(AC)n", "(AG)n", 
"(AT)n"), class = "factor"), length = c(69L, 69L, 69L, 69L 
), eff_length = c(70L, 70L, 70L, 70L), est_counts = c(0, 
0, 0, 5), tpm = c(0, 0, 0, 15.9887), class = c(0L, 0L, 0L, 
0L)), .Names = c("sample_id", "target_id", "length", "eff_length", 
"est_counts", "tpm", "class"), row.names = c(NA, 4L), class = "data.frame") 

は、私は、次の使用してみました

 sample_id  target_id tpm 
9759 SRR3884843CxS Tigger15a 0.00000e+00 
9760 SRR3884843CxS Tigger16a 0.00000e+00 
9761 SRR3884843CxS Tigger16b 0.00000e+00 

selectで何か間違っていますか?チュートリアルサイトのサンプルデータを問題なく扱うことができました。あなたがsample_idtarget_id、およびtmpでやっていることである名前、によって:

+0

いつ 'sample_id'が' 'C" 'で終わるでしょうか?例を教えてください。 – CPak

+0

コードの最初のブロックには、他のエンディング(CxSなど)の代わりにCで終わる例がありますが、意味がありますか?もっと明確にする必要がある場合は、私にお知らせください。 – ZincFingers

答えて

2

selectは(コラムを読んで)変数を維持するために使用されます。あなたはsample_id内の値でフィルタを促進したい場合は、filterを追加します。

teC <- te %>% select(sample_id, target_id, tpm) %>% filter(grepl("C$", sample_id)) 

正規表現"C$"が「C」で終わる文字列にマッチします。 "CxS$"は "CxS"で終わる文字列と一致します。 "(C|CxS)$"は両方に一致します。

+0

ああ、私は今OPが望んでいたものを見る... – CPak

+0

私はここのような列内の特定の名前をつかむために選択を使用することはできません:https://www.r-bloggers.com/the-complete-catalog-of -argument-バリエーション-のセレクト・イン・dplyr/ 私はコピーしてあなたの答えを貼り付けfilter_implでエラー 'エラー(.dataセクション、クオ)得た: 評価エラーは: 'NCHAR()' 文字が必要ですベクトル。 私は%>%の使用に慣れていないので、それを理解する必要があります。 – ZincFingers

+0

実際にはこれは間違っています - 'endswith'は' select'のための "ヘルパー"関数です(特定の名前のカラムをつかむため) - この答えを 'sample_id'の文字列に正しく一致させるように更新します – cmaher

関連する問題