作者Udyr (Udyr)
看板R_Language
標題[問題] 計算累積機率
時間Mon Nov 16 00:43:30 2015
[問題類型]:
程式諮詢(我想用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
請問在資料量很大的情況下
有沒有推薦較有效率的方法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.6.5
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1447605812.A.881.html
※ 編輯: Udyr (118.165.6.5), 11/16/2015 00:43:54
1F:推 Edster: x是你的data, X=unstack(x); rownames(X)=unique(x$user) 11/16 06:36
2F:推 Edster: 順序錯了, 調一下. 11/16 06:48
3F:→ Edster: x$point=1; X=merge(x,expand.grid(user=1:5,level=1:5)) 11/16 06:51
4F:→ Edster: X[is.na(X)]=0; colMeans(unstack(X[,c(3,2)]),na.rm=T) 11/16 06:52
5F:→ Edster: merges那邊最後要插一個指令, all=TRUE 11/16 06:53
6F:→ celestialgod: e大 那樣做其實等同於dcast 11/16 09:19
7F:推 Edster: 後來想想, 用table(x$level)/max(x$user) 就結束了. 11/16 09:38
8F:→ Edster: 最近debug到昏了, 所有事情都想要檢查原始資料. 11/16 09:39
9F:→ celestialgod: 對耶XD table就結束了XDD 11/16 09:47