[問題] 數據重新分組

看板R_Language作者 (胖海)時間7年前 (2018/04/05 15:11), 7年前編輯推噓1(106)
留言7則, 4人參與, 7年前最新討論串1/1
[問題類型]: 程式諮詢 其實也是作業,只是遇到瓶頸,想求救 [軟體熟悉度]: 超級新手 [問題敘述]: 需要將50000筆隨機的分數重新分組成(0級分-5級分) set.seed(15) x<-runif(50000,min=0,max=100) 這是題目 [程式範例]: 我自己的想法是這樣 for(i in 1:length(x)) { if((x[i]>=0)&(x[i]<=59)) {print("0") }else if ((x[i]>=60)&(x[i]<=69)) {print("1") }else if ((x[i]>=70)&(x[i]<=79)) {print("2") }else if ((x[i]>=80)&(x[i]<=84)) {print("3") }else if ((x[i]>=85)&(x[i]<=89)) {print("4") }else if ((x[i]>=90)&(x[i]<=100)) {print("5")} } 這樣跑下去, 的確會重新將每個數字重新分類, 但有沒有語法是能夠幫助我統計 0級分有幾個、1級分有幾個, 我試過length("0"),但應該是錯誤的... 先謝謝各位大大了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.228.206 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1522912297.A.FC5.html

04/05 16:07, 7年前 , 1F
Hi,因為是作業,所以我不直接告訴你怎麼做
04/05 16:07, 1F

04/05 16:07, 7年前 , 2F
我想findInterval跟table可以給你一點方向
04/05 16:07, 2F

04/05 18:20, 7年前 , 3F
cut, hist 也可以. 古人用法.
04/05 18:20, 3F

04/05 20:21, 7年前 , 4F
謝謝各位大大 我看一下這幾個語法怎麼用
04/05 20:21, 4F
謝謝大大的提示, 我試著用 table(cut(x,c(0,60,70,80,85,90,100),c(0,1,2,3,4,5))) 來跑, 果然簡潔很多, 但我有個疑問, 就是在分數的區間裡面, 我們本來是定義0-59為0級分, 60-69為1級分, 70-79為2級分, 80-84為3級分, 85-89為4級分, 90-100為5級分。 但用cut的話, 就會變成0-60為0, 60-70為1, 那這個重疊的60分系統會怎麼判斷呢? 因為我把次數分配表加起來也沒有剛好50000筆資料, 請問是正常的嗎? 謝謝大大們 ※ 編輯: omit18 (36.230.226.248), 04/08/2018 21:59:51

04/08 22:57, 7年前 , 5F
set right = FALSE
04/08 22:57, 5F

04/08 22:57, 7年前 , 6F
建議你要使用任何function之前都先把documentation看完
04/08 22:57, 6F

04/08 23:01, 7年前 , 7F
cut有right參數吧...設為FALSE 應該就不會重疊?...
04/08 23:01, 7F
文章代碼(AID): #1QnSmf_5 (R_Language)
文章代碼(AID): #1QnSmf_5 (R_Language)