是否可以通过引用重新排序数据表中列的因子级别?据我所知,不是现有的答案:
table$x <- factor(table$x, levels = c("giraffes", "orangutans", "monkeys"))setattr(mydt$value,"levels",c(...))接受的答案使用:=符号提供了一种没有副作用的方法.
该问题的背景是需要重新排序Plotly中的条形图,该条形图规定了重新排序因子水平(链接).
我需要重新排序数据表框架中列的因子级别,我想以原生数据表的方式进行,如果有的话.我知道我可以用数据帧方式来做,但这需要硬编码的列名.我想使用动态列名,如果可能的话,通过引用更新.我找到了一种通过引用(链接)重新排序列的方法,但它不会相应地重新排序其他列,也不能使用动态列引用.
我有以下数据(人均二氧化碳排放量):
library(data.table)
print(data)
indicator country year value
1: EN.ATM.CO2E.PC Canada 2011 15.639760
2: EN.ATM.CO2E.PC China 2011 7.241515
3: EN.ATM.CO2E.PC European Union 2011 7.079374
4: EN.ATM.CO2E.PC India 2011 1.476686
5: EN.ATM.CO2E.PC Saudi Arabia 2011 17.702307
6: EN.ATM.CO2E.PC United States 2011 16.972417
class(data)
[1] "data.table" "data.frame"
print(str(lapply(data, class)))
List of 8
$ indicator : chr …Run Code Online (Sandbox Code Playgroud)