我正在合并数据框,其中一个带有标签数据。但是,当数据框合并时,标记的向量变为数字。我怎样才能避免这种情况发生?
以下示例显示了 mtcars 的问题:
library(haven)
library(dplyr)
df <- data.frame(am = c(0, 1),
var = c("X", "Y"))
mtcars$cyl <- labelled(mtcars$cyl, c("A" = 4, "B" = 6, "C" = 8))
class(mtcars$cyl)
在这里, mtcats$cyl 是“标记的”。
mtcars <- merge(mtcars, df, by.x = "am", by.y = "am", all.x = TRUE)
#OR
mtcars <- left_join(mtcars, df, by = c("am"="am"))
class(mtcars$cyl)
然后 mtcars$cyl 变为“数字”。我还注意到,如果你裁剪掉向量的一部分,也会发生同样的事情,比如这里:
x <- mtcars$cyl[2:6]
class(mtcars$cyl)
这里 x 也是“数字”。