R避免强迫因素

时间:2016-06-10 12:39:32

标签: r data-cleansing data-cleaning

我遇到了一些问题,我需要在列中使用“小于”(<)运算符,但我的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,]

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

1 个答案:

答案 0 :(得分:0)

好的,它已经解决了,我还没有意识到在我的data.frame中,有些数据有&#34;,&#34;而不是&#34;。&#34;作为小数点分隔符,我用gsub改变了这个:

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

然后它只使用&#34; as.numeric&#34;一部分。

感谢您的评论!