R 如何保持向量为;标签为;使用合并或左联合合并数据帧时?

R 如何保持向量为;标签为;使用合并或左联合合并数据帧时?,r,merge,label,left-join,labelled-generic,R,Merge,Label,Left Join,Labelled Generic,我正在合并数据帧,其中一个已标记数据。但是,当数据帧合并时,带标签的向量变为数字。我怎样才能阻止这种事情发生 以下示例显示了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(m

我正在合并数据帧,其中一个已标记数据。但是,当数据帧合并时,带标签的向量变为数字。我怎样才能阻止这种事情发生

以下示例显示了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)
图书馆(避风港)
图书馆(dplyr)

df我无法复制ISSUE
left_join(mtcars,df,by=c(“am”=“am”))$cyl%>%class[1]“have_labeled”;>类(mtcars$cyl)[1]“haven_labeled”
假设
labeled
来自
library(labeled)
结果是,一旦我卸载了包“lmerTest”,概率就消失了。有趣的是,它并不像@akrun所说的那样被贴上“标签”,但对我来说,它现在仍然被贴上了“标签”。可能是,来自
lmerTest
的某个函数掩盖了另一个函数。不清楚思路好的,我用了
库(带标签)
而不是
港口
,谢谢
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)
x <- mtcars$cyl[2:6]
class(mtcars$cyl)