我正在尝试对同一列中的值进行洗牌,以便在输出表中具有不同的顺序
dat.stat.can.21$income.recode<-rep("40-99", length = dim(dat.stat.can.21)[1])
dat.stat.can.21$income.recode[dat.stat.can.21$HHInc<13]<-c("0-40")
dat.stat.can.21$income.recode[dat.stat.can.21$HHInc>24&dat.stat.can.21$HHInc<34]<-c("100+")
table(dat.stat.can.21$income.recode)
表格如下所示:
0-40 100+ 40-99
34670 200806 111532
我想在第三列中取100+,并在第二列中取40-99。我尝试这样做:
dat.stat.can.21$income.recode<-rep("0-40", length = dim(dat.stat.can.21)[1])
dat.stat.can.21$income.recode[dat.stat.can.21$HHInc>12 & dat.stat.can.21$HHInc<25]<-c("40-99")
dat.stat.can.21$income.recode[dat.stat.can.21$HHInc>24&dat.stat.can.21$HHInc<34]<-c("100+")
table(dat.stat.can.21$income.recode)
但它向我展示了同样的情况。有人知道该怎么做吗?
使用
OrderMixed
,因为你的表名是字符串
排序包含以下内容的字符串 嵌入数字,以便数字按数字顺序排序 比按字符值排序
如果这是您的数据
tab <- structure(c(`0-40` = 5L, `100+` = 3L, `40-99` = 2L), dim = 3L,
dimnames = list(c("0-40", "100+", "40-99")), class = "table")
tab
0-40 100+ 40-99
5 3 2
按数字内容对字符串进行排序可以得到
tab <- tab[DescTools::OrderMixed(names(tab))]
tab
0-40 40-99 100+
5 2 3