计算R中两个离散变量的概率

时间:2014-01-27 15:37:39

标签: r frequency-distribution

所以,我有类似的东西:

V1 V2
X  B
Y  A
X  A
Y  B
X  B
X  B

我需要:

    A     B
X  0.17  0.5
Y  0.17  0.17

*注意:由于我将1.666转为1.7.*

,因此总计不等于1

2 个答案:

答案 0 :(得分:7)

使用table function创建计数表:

> table(df)
   V2
V1  A B
  X 1 3
  Y 1 1

概率表是以直接的方式得出的:

> table(df) / nrow(df)
   V2
V1          A         B
  X 0.1666667 0.5000000
  Y 0.1666667 0.1666667

或者,使用prop.table

> prop.table(table(df))
   V2
V1          A         B
  X 0.1666667 0.5000000
  Y 0.1666667 0.1666667

答案 1 :(得分:1)

另一种方式:

table(df)/nrow(df)
#    V2
# V1          A         B
#   X 0.1666667 0.5000000
#   Y 0.1666667 0.1666667