【发布时间】:2021-04-25 18:07:25
【问题描述】:
所以我一直在尝试使用data.table 操作数据集。就像在STATA 中一样,我想使用它们的值而不是标签对我的因素进行分类。我觉得这对于处理具有非常奇怪标签和大量空格的分类变量时要安全得多。
到目前为止,我还无法在R 中执行此操作。这是可能的还是我错过了什么?
我附上了一个虚拟代码来重现这个问题。
install.packages("data.table")
library(data.table)
classmates
# dummy data
school_friends <-data.table(names = as.factor(c("Beth", "Ben", "Andrew","Amy", "Claire","Ahmed", "Moses", "Jose", "Ibrahim", "Rachel")
),
age = c(19,18,19,19,20,19,19,17,18,19))
str(school_friends)
# categorise dataset
school_friends[names==1 |
names==4 |
names==5 |
names==10,
sex:=1]
school_friends[names==2 |
names==3 |
names==6 |
names==7 |
names==8 |
names==9,
sex:=2]
# labels levels
school_friends$sex <- factor(school_friends$sex, levels = c(1,2),
labels = c("Boy", "Girl"))
在STATA 中这样做就像这样直截了当:
# create new categories
gen sex=.
replace sex=0 if names==1 | names==4 | names==5 | names==10
replace sex=1 if names==2 | names==3 | names==6 | names==7 | names==8 | names==9
# label categories
label define edulab 0 "Boy" 1 "Girl"
label values edu edulab
【问题讨论】:
标签: r data.table data-manipulation