[問題] 計算累積機率

作者: 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