作者criky (立业成家)
看板R_Language
标题[问题] 编流水号的问题
时间Thu Oct 8 14:49:21 2015
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1444286964.A.19E.html
1F:→ celestialgod: 你要先验证你cid读进来是factor还是character 10/08 16:07
2F:→ celestialgod: 如果你本身读近来是factor你重新factor是无效的 10/08 16:08
3F:→ celestialgod: 如果本身是factor 你必须要先as.character 10/08 16:11
4F:→ celestialgod: cid = as.integer(factor(as.character(cid.tmp))) 10/08 16:11
5F:→ criky: 嗯嗯,我觉得r的格式蛮多的~~还在熟悉中 @@ 10/08 16:50