[問題] 計算累積機率

看板R_Language作者 (Udyr)時間8年前 (2015/11/16 00:43), 8年前編輯推噓3(306)
留言9則, 2人參與, 最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用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

11/16 06:36, , 1F
x是你的data, X=unstack(x); rownames(X)=unique(x$user)
11/16 06:36, 1F

11/16 06:48, , 2F
順序錯了, 調一下.
11/16 06:48, 2F

11/16 06:51, , 3F
x$point=1; X=merge(x,expand.grid(user=1:5,level=1:5))
11/16 06:51, 3F

11/16 06:52, , 4F
X[is.na(X)]=0; colMeans(unstack(X[,c(3,2)]),na.rm=T)
11/16 06:52, 4F

11/16 06:53, , 5F
merges那邊最後要插一個指令, all=TRUE
11/16 06:53, 5F

11/16 09:19, , 6F
e大 那樣做其實等同於dcast
11/16 09:19, 6F

11/16 09:38, , 7F
後來想想, 用table(x$level)/max(x$user) 就結束了.
11/16 09:38, 7F

11/16 09:39, , 8F
最近debug到昏了, 所有事情都想要檢查原始資料.
11/16 09:39, 8F

11/16 09:47, , 9F
對耶XD table就結束了XDD
11/16 09:47, 9F
文章代碼(AID): #1MIBOqY1 (R_Language)
文章代碼(AID): #1MIBOqY1 (R_Language)