R将子集视为因子变量,而不是数值变量

R将子集视为因子变量,而不是数值变量,r,subset,negation,R,Subset,Negation,在comlex数据框中,我有一个列,其中包含我想要排除的净召回工资(包括NAs),再加上一个列,列中包含1992年至2010年进行研究的年份,大致如下所示: q32 pgssyear 2000 1992 1000 1992 NA 1992 3000 1994 etc. 如果我尝试绘制一个箱线图,如: boxplot(dataset$q32~pgssyear,data=dataset, main="Recalled Net Salary per Month (PLN)", xlab=

在comlex数据框中,我有一个列,其中包含我想要排除的净召回工资(包括NAs),再加上一个列,列中包含1992年至2010年进行研究的年份,大致如下所示:

q32 pgssyear
2000 1992
1000 1992
NA   1992
3000 1994
etc.
如果我尝试绘制一个箱线图,如:

boxplot(dataset$q32~pgssyear,data=dataset, main="Recalled Net Salary per Month (PLN)",
    xlab="Year", ylab="Net Salary") 
这似乎是可行的,但是NAs可能会扭曲计算,因此我想消除它们:

boxplot(na.omit(dataset$q32)~pgssyear,data=dataset, main="Recalled Net Salary per Month (PLN)",
    xlab="Year", ylab="Net Salary") 
然后我收到一条警告消息,pgsyear和q32的长度不匹配,很可能是因为我从q32中删除了NAs,所以我尝试缩短pgsyear,以便它不包括与q32列中的NAs对应的行:

   pgssyearprim <- subset(dataset$pgssyear, dataset$q32!= NA )
如果我把它引入箱线图公式,我会得到同样的警告信息

Levels: 1992 1993 1994 1995 1997 1999 2002 2005 2008 2010

他们当然不会。。。您仅使用na.omitdataset$q32~pgssyear从LHS中删除了一些数据。而是使用!is.nadataset$q32作为子集参数

使用dataset\n谢谢学生,这对我很有用!不知何故,在q32 dataset\n中创建一个没有NAs的单独数据集并将其引入到boxplot命令中效果最好。
Levels: 1992 1993 1994 1995 1997 1999 2002 2005 2008 2010