【问题标题】:counting the frequency of value in a column [duplicate]计算列中值的频率[重复]
【发布时间】:2013-10-01 01:04:27
【问题描述】:

我有不同项目的数据,这些项目具有“不太可能”、“可能”或“可能”的路径 A-E 和可能性。数据看起来像这样(但有更多的项目 - 所以更多的行):

   Project   Pathway   Likelihood
1    Red        A       unlikely
2    Red        B       possible
3    Red        C       likely
4    Red        D       possible
5    Red        E       possible
6    Blue       A       possible
7    Blue       B       unlikely
8    Blue       C       possible
9    Blue       D       possible
10   Blue       E       unlikely
11   Green      A       unlikely
12   Green      B       possible
13   Green      C       likely
14   Green      D       possible
15   Green      E       possible
16   Yellow     A       unlikely
17   Yellow     B       unlikely
18   Yellow     C       possible
19   Yellow     D       possible
20   Yellow     E       likely

对于每个 Pathway,我想从 Likelihood 列中计算“不太可能”、“可能”和“可能”的数量,以便我可以将每个 Pathway 的数据框作为一行,并且不太可能、可能和可能为列。

有人知道最好的方法吗?

提前致谢!

【问题讨论】:

  • 这是一个非常常见的数据操作,之前已经被问过很多次了。您能多分享一下您尝试过的方法以及为什么没有奏效吗?

标签: r


【解决方案1】:

假设你的数据被称为dat

intm <- aggregate(Likelihood ~ Pathway, data=dat, FUN=table)
data.frame(Pathway=intm$Pathway, intm$Likelihood)

#  Pathway likely possible unlikely
#1       A      0        1        3
#2       B      0        2        2
#3       C      2        2        0
#4       D      0        4        0
#5       E      1        2        1

或全部在一行中:

do.call(data.frame, aggregate(Likelihood ~ Pathway, data=dat, FUN=table))

#  Pathway Likelihood.likely Likelihood.possible Likelihood.unlikely
#1       A                 0                   1                   3
#2       B                 0                   2                   2
#3       C                 2                   2                   0
#4       D                 0                   4                   0
#5       E                 1                   2                   1

【讨论】:

  • 有很多方法可以做到这一点。在什么时候我们应该说:做一些搜索!我是反对者之一,但如果我回答它,我会使用xtabs。在这种情况下更好地标记。
  • 如果你要使用 table 为什么不:with(dat, table(table(Pathway, Likelihood) )
  • 这很有帮助。感谢您的回复。
  • 我同意,这正是我今天所需要的。谢谢!
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
相关资源
最近更新 更多