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" 部分就可以正常工作了。
感谢您的评论!
我遇到了一个小问题,我需要对一列使用 "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" 部分就可以正常工作了。
感谢您的评论!