2017-05-22 1 views
0

サンプルのリストが.txtファイルにあります。各サンプルには複数の行があり、そのサンプルからの観測値です。列には開始位置と終了位置が表示されます。私は、サンプルあたりの同一の観測対の数を数えたいと思う。dplyrでサンプルごとにペア変数の発生数を数える方法

sample start end 
sampleA D C 
sampleA D D 
sampleB A A 
sampleA D D 
sampleB A A 
sampleB B A 
sampleB B A 
sampleA A A 

予想出力(列1及び2は、一対の観察および列3である場合、その観測の数である:

sampleA 
D D 2 
D C 1 
A A 1 

sampleB 
A A 2 
B A 2 

Iカウントを(使用する方法を知っている)および(DESCを(アレンジ) )単一の観測のためにこれを行うには、私は同時に事前に?

おかげで2つの列を考慮する必要があるとき、あなたはそれをどのように行うのか。

+0

は '数(yourdata、サンプル、開始、終了)'働くだろうですが、列と行の数を数えますあなたのために? – jazzurro

答えて

2

dplyr、グループを使用して3でこれは返す

library(dplyr) 
df %>% 
group_by(sample,start,end) %>% 
summarise(n=n()) 

sample start end  n 
     <chr> <chr> <chr> <int> 
    1 sampleA  A  A  1 
    2 sampleA  D  C  1 
    3 sampleA  D  D  2 
    4 sampleB  A  A  2 
    5 sampleB  B  A  2 
+0

最後の行は 'count()'に置き換えられ、同じ出力が得られます。 –

0

それとも別のオプションdata.table

library(data.table) 
setDT(df1)[, .(n = .N), .(sample, start, end)] 
# sample start end n 
#1: sampleA  D C 1 
#2: sampleA  D D 2 
#3: sampleB  A A 2 
#4: sampleB  B A 2 
#5: sampleA  A A 1 
関連する問題