【问题标题】:How to count the number of occurence of paired variables per sample in dplyr如何计算 dplyr 中每个样本的配对变量的出现次数
【发布时间】:2017-05-22 15:52:09
【问题描述】:

我有一个 .txt 文件中的样本列表。每个样本都有多行,它们是来自该样本的观察值。列显示开始和结束位置。我想计算每个样本的相同观察对的数量。

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

我知道如何使用 count() 和arrange(desc()) 来为单个观察执行此操作,但是当我需要同时考虑两列时您如何操作?

提前致谢。

【问题讨论】:

  • count(yourdata, sample, start, end) 适合你吗?

标签: r dplyr


【解决方案1】:

使用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

【讨论】:

  • 您的最后一行可以替换为count() 并且您得到相同的输出。
【解决方案2】:

或者另一个选项是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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多