我遇到了一些问题,我需要在列中使用“小于”(<)运算符,但我的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,]
有避免这种情况的快速方法吗? 提前谢谢!
答案 0 :(得分:0)
好的,它已经解决了,我还没有意识到在我的data.frame中,有些数据有&#34;,&#34;而不是&#34;。&#34;作为小数点分隔符,我用gsub改变了这个:
joined4$result<-gsub( ",", ".", joined4$result )
然后它只使用&#34; as.numeric&#34;一部分。
感谢您的评论!