【问题标题】:R treats the subset as factor variables instead of numeric variablesR 将子集视为因子变量而不是数值变量
【发布时间】:2014-11-16 01:02:06
【问题描述】:

在一个复杂的数据框中,我有一列包含我想排除的净召回工资(包括 NA),以及一列包含 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") 

它似乎有效,但是 NA 可能会扭曲计算,所以我想摆脱它们:

boxplot(na.omit(dataset$q32)~pgssyear,data=dataset, main="Recalled Net Salary per Month (PLN)",
    xlab="Year", ylab="Net Salary") 

然后我收到一条警告消息,指出 pgsyear 和 q32 的长度不匹配,很可能是因为我从 q32 中删除了 NA,所以我尝试缩短 pgsyear,使其不包含对应于 NA 的行q32 栏:

   pgssyearprim <- subset(dataset$pgssyear, dataset$q32!= NA )

但是 pgsyearprim 被视为因子变量:

pgssyearprim
factor(0)       

如果我将它引入箱线图公式,我会收到相同的警告消息...

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

【问题讨论】:

  • 使用dataset_n &lt;- dataset[!is.na(dataset$q32),]
  • 感谢 RStudent,这对我有用!

标签: r subset negation


【解决方案1】:

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

【讨论】:

  • 以某种方式在 q32 (dataset_n) 中创建一个没有 NA 的单独数据集并将其引入 boxplot 命令效果最佳。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多