R 避免使用 Factors 强制

R avoid coercion with Factors

我遇到了一个小问题,我需要对一列使用 "less than"(<) 运算符,但是我的 data.frame 将该列(结果)作为因子列,所以我尝试了一些方法将其转换为数值,这是我的 data.frame

的示例
Data       result           otherData          MoreData
  x          403.3             low                old
  y          405.5             mid                older
  z          32                very low           young
  w          326.72            low                median
  t          45                low                alter
  g          56.37             low                ego

因此,点后有多个数字的行,在本例中为第 4 行和第 6 行,值为 326.72 和 56.37 变为 NA。这是我试过的:

auxUnit<-joined4[(as.numeric(as.character(joined4$result))),]

它只适用于像 "x" 和 "x.x" 这样的元素,正如我所说,"x.xy" 转换为 NA,它给了我这个警告:

NAs introduced by coercion

输出数据集为:

Data       result           otherData          MoreData
  x          403.3             low                old
  y          405.5             mid                older
  z          32                very low           young
  NA         NA                NA                 NA
  t          45                low                alter
  NA         NA                NA                 NA

我尝试将此代码转换为数字,因为我需要它们是 Java 中的 float 或 double 等数字,因此我可以与数字进行比较,以过滤案例,例如做一些事情喜欢:

auxUnit<-joined4[joined4$result>13.64,]

有没有快速避免这种情况的方法? 提前致谢!

好的,解决了,我没有意识到在我的data.frame中,有些数据有“,”而不是“。”作为小数点分隔符,我用 gsub 改变了它:

joined4$result<-gsub( ",", ".", joined4$result )

然后 "as.numeric" 部分就可以正常工作了。

感谢您的评论!