自动将数据帧转换为因子

时间:2016-05-30 06:49:34

标签: r

我正在尝试删除重复项

laa <-subset(la,select =c(PermID))

class(laa)

laa1<-laa[!duplicated(laa$userPermID), ]

class(laa1)

当我运行前两行时,class命令将其显示为data.frame,但在运行duplicate命令后,它会自动转换为factor。 有什么特别的原因。因为iam无法在数据框中看到它

1 个答案:

答案 0 :(得分:1)

由于我们只是在第一步中选择“PermID”,因此使用[对具有单列data.frame的行进行子集化时的默认选项将为drop=TRUE,从而导致{{1而不是vector。假设'PermID'是data.frame列,factor的{​​{1}}将为class。为避免这种情况,请使用vector

factor

drop=FALSElaa1 <- laa[!duplicated(laa$userPermID), , drop=FALSE]

如果我们查看文档class(laa1),则默认用法为

  

x [i,j,...,drop = TRUE]

     

drop:对于矩阵和数组。如果为TRUE,则结果强制转换为   可能的最小尺寸(参见示例)。这只适用于   提取元素,而不是替换。请进一步了解   的信息。