[问题] 计算累积机率

楼主: Udyr (Udyr)   2015-11-16 00:43:30
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
资料的格式如下
user level
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
3 1
3 2
3 3
3 4
4 1
4 2
5 1
5 2
5 3
5 4
5 5
其中level的最大值为5
想对level计算累积机率(有多少比例的user达到某一个特定的level)
以上面的资料 想得到的结果为
level 5 4 3 2 1
cum.prob 0.4 0.6 0.8 1 1
请问在资料量很大的情况下
有没有推荐较有效率的方法
作者: Edster (Edster)   2015-11-16 06:36:00
x是你的data, X=unstack(x); rownames(X)=unique(x$user)顺序错了, 调一下.x$point=1; X=merge(x,expand.grid(user=1:5,level=1:5))X[is.na(X)]=0; colMeans(unstack(X[,c(3,2)]),na.rm=T)merges那边最后要插一个指令, all=TRUE
作者: celestialgod (天)   2015-11-16 09:19:00
e大 那样做其实等同于dcast
作者: Edster (Edster)   2015-11-16 09:38:00
后来想想, 用table(x$level)/max(x$user) 就结束了.最近debug到昏了, 所有事情都想要检查原始资料.
作者: celestialgod (天)   2015-11-16 09:47:00
对耶XD table就结束了XDD

Links booklink

Contact Us: admin [ a t ] ucptt.com