我正在尝试删除重复项
laa <-subset(la,select =c(PermID))
class(laa)
laa1<-laa[!duplicated(laa$userPermID), ]
class(laa1)
当我运行前两行时,class命令将其显示为data.frame,但在运行duplicate命令后,它会自动转换为factor。 有什么特别的原因。因为iam无法在数据框中看到它
答案 0 :(得分:1)
由于我们只是在第一步中选择“PermID”,因此使用[
对具有单列data.frame的行进行子集化时的默认选项将为drop=TRUE
,从而导致{{1而不是vector
。假设'PermID'是data.frame
列,factor
的{{1}}将为class
。为避免这种情况,请使用vector
。
factor
drop=FALSE
为laa1 <- laa[!duplicated(laa$userPermID), , drop=FALSE]
。
如果我们查看文档class(laa1)
,则默认用法为
x [i,j,...,drop = TRUE]
drop:对于矩阵和数组。如果为TRUE,则结果强制转换为 可能的最小尺寸(参见示例)。这只适用于 提取元素,而不是替换。请进一步了解 的信息。