看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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
celestialgod: 你要先驗證你cid讀進來是factor還是character 10/08 16:07
celestialgod: 如果你本身讀近來是factor你重新factor是無效的 10/08 16:08
celestialgod: 如果本身是factor 你必須要先as.character 10/08 16:11
celestialgod: cid = as.integer(factor(as.character(cid.tmp))) 10/08 16:11
criky: 嗯嗯,我覺得r的格式蠻多的~~還在熟悉中 @@ 10/08 16:50