2017-03-29 7 views
0

私はpos.scoreに対してカスタムしきい値を適用した後に要約データ(各グループのデータ項目の数)をレンダリングするつもりです。しかし、これを実現させるためにdplyr関数とpipe operator関数を使用するつもりです。私は、summarize関数を使うのに対して、私の目標を達成するにはSOを調べました。しかし、私は自分の問題を解決するために私自身の試みを使用しますが、私の解決策にまだ到達することはできません。誰も私にどのようにdplyr関数またはbase Rを使用してこれを起こすように指摘できますか?これを簡単に行うための方法はありますか?何か案が?ここ複数のdata.frameにデータ項目の要約をレンダリングする方法は?

は最小再生可能なデータである:ここ

Qualified <- list(
     hotan = data.frame(begin=seq(1, by=6, len=45), end=seq(4, by=6, len=45), pos.score=sample(125, 45)), 
     aksu = data.frame(begin=seq(3, by=9, len=36), end=seq(6, by=9, len=36), pos.score=sample(84, 36)), 
     korla = data.frame(begin=seq(6, by=8, len=52), end=seq(11, by=8, len=52), pos.score=sample(172, 52)) 
    ) 

dplyrを使用して私の可能な試みであるが、動作することはできません。私の所望の溶液、それぞれのデータ項目の数で

bind_rows(Qualified, .id = "id") %>% 
    mutate(stringency = ifelse(pos.score >= 23, 
           "Stringent", "Weak")) %>% summarise() 

グループはうまく報告することができます。誰も私に考えを与えることができますか?ありがとうございます。

+0

を呼び出すことができ、あなたは 'id'を意味するのですか?各 'id 'にそれぞれの' stringency'カテゴリの数を取得しようとしていますか? – Craig

+0

@craig 'mutate'関数を使用した後、それらをしきい値で分割し、各グループのデータ項目数を要約して報告することができます。 – Dan

+0

それで、あなたの望む出力は 'id'、' stringency'、 'count'の3列のdata.frameですよね? – r2evans

答えて

1

グループ別にカウントしたい場合は、group_byを使用し、グループにどのような要約情報(n())を入力する必要がありますか?summarize

bind_rows(Qualified, .id = "id") %>% 
    mutate(stringency = ifelse(pos.score >= 23, 
          "Stringent", "Weak")) %>% 
    group_by(id, stringency) %>% 
    summarize(n = n()) 

# id stringency  n 
# aksu Stringent 25 
# aksu  Weak 11 
# hotan Stringent 38 
# hotan  Weak  7 
# korla Stringent 50 
# korla  Weak  2 

あなたは、実際の分割表をしたい場合は、あなたが変異したデータを割り当て、グループでtable

df <- bind_rows(Qualified, .id = "id") %>% 
    mutate(stringency = ifelse(pos.score >= 23, 
          "Stringent", "Weak")) 

table(df$id, df$stringency) 

#  Stringent Weak 
# aksu   25 11 
# hotan  38 7 
# korla  50 2 
関連する問題