[問題] 編流水號的問題

看板R_Language作者 (立業成家)時間10年前 (2015/10/08 14:49), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 將資料編流水號 [程式範例]: library(dplyr) library(data.table) library(magrittr) cid.tmp<-paste(base2$schoolid,base2$programme,base2$class) dat = data.table(id = cid.tmp) dat %>% mutate(cid = as.integer(factor(cid.tmp))) %>% group_by(cid.tmp) %>% mutate(cid.n = 1:length(cid.tmp)) 以上code是修改自c板主回覆recode文章的回答, 可以執行,但有個問題,cid是我要的流水號, 但它的順序和我資料的順序不一樣,程式做了sort的動作, 後面資料會有id是100301開頭的,cid=1 但我希望cid從第1行的資料,不要排序,直接從1編流水號~ 執行結果output如下: "id" "cid""cid.n" "1" "10301 高三 孝班" 6 1 "2" "10301 高三 孝班" 6 2 "3" "10301 高三 孝班" 6 3 "4" "10301 高三 孝班" 6 4 "5" "10301 高三 和班" 7 1 "6" "10301 高三 和班" 7 2 "7" "10301 高三 和班" 7 3 "8" "10301 高三 和班" 7 4 "9" "10301 高三 問班" 8 1 "10" "10301 高三 問班" 8 2 "11" "10301 高三 問班" 8 3 "12" "10301 高三 問班" 8 4 "13" "10301 高三 問班" 8 5 "14" "10301 高三 問班" 8 6 "15" "10301 高三 問班" 8 7 "16" "11316 普通科 普三和" 19 1 "17" "11316 普通科 普三和" 19 2 "18" "11316 普通科 普三和" 19 3 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.127.235.24 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1444286964.A.19E.html

10/08 16:07, , 1F
你要先驗證你cid讀進來是factor還是character
10/08 16:07, 1F

10/08 16:08, , 2F
如果你本身讀近來是factor你重新factor是無效的
10/08 16:08, 2F

10/08 16:11, , 3F
如果本身是factor 你必須要先as.character
10/08 16:11, 3F

10/08 16:11, , 4F
cid = as.integer(factor(as.character(cid.tmp)))
10/08 16:11, 4F

10/08 16:50, , 5F
嗯嗯,我覺得r的格式蠻多的~~還在熟悉中 @@
10/08 16:50, 5F
文章代碼(AID): #1M5X7q6U (R_Language)
文章代碼(AID): #1M5X7q6U (R_Language)