我有两个data.tables,dt
是漫长的,在范围为1 ... 5的整数列levels
,和另一个data.table“标签”包含标签以简单的形式是这样的:如何从另一个data.table中重命名R data.table中的级别?
labels <- data.table(V1=1:5, V2=c("Very Low", "Low", "Median", "High", "Very High"))
# V1 V2
# 1: 1 Very Low
# 2: 2 Low
# 3: 3 Median
# 4: 4 High
# 5: 5 Very High
实际dt
是相当大的,但是对于重复性简单的人会做(尽管在现实DT水平不是常规):
dt <- data.table(levels=rep(1:5, times=10))
我怎么能在dt
与字符标签的替代水平列从labels
一个去?
我可以手动循环做到这一点,我也可以通过添加另一列,这样做(丑陋!):
dt[, tmp := labels$V2[dt$level] ]
,然后删除列level
和重命名tmp
。
有没有一个很好的data.table方法来做到这一点?
@hfty请参阅更新 –