看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1447605812.A.881.html ※ 編輯: Udyr (118.165.6.5), 11/16/2015 00:43:54
Edster: x是你的data, X=unstack(x); rownames(X)=unique(x$user) 11/16 06:36
Edster: 順序錯了, 調一下. 11/16 06:48
Edster: x$point=1; X=merge(x,expand.grid(user=1:5,level=1:5)) 11/16 06:51
Edster: X[is.na(X)]=0; colMeans(unstack(X[,c(3,2)]),na.rm=T) 11/16 06:52
Edster: merges那邊最後要插一個指令, all=TRUE 11/16 06:53
celestialgod: e大 那樣做其實等同於dcast 11/16 09:19
Edster: 後來想想, 用table(x$level)/max(x$user) 就結束了. 11/16 09:38
Edster: 最近debug到昏了, 所有事情都想要檢查原始資料. 11/16 09:39
celestialgod: 對耶XD table就結束了XDD 11/16 09:47