-1

所以,我有类似的东西:

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,因为我1.666四舍五入1.7.*

4

2 回答 2

8

使用该table函数创建计数表:

> 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
于 2014-01-27T15:46:46.313 回答
1

其他方式:

table(df)/nrow(df)
#    V2
# V1          A         B
#   X 0.1666667 0.5000000
#   Y 0.1666667 0.1666667
于 2014-01-27T15:47:19.757 回答