如何将字符向量转换为数字?

6

我有这个字符向量,但我需要将其转换为数字。

>iono_test_y
[1] "g" "b" "b" "g" "g" "g" "b" "g" "b" "b" "g" "b" "g" "b" "b" "b" "g" "g" "b" "b" "b" "g" "g"
[24] "b" "b" "g" "g" "g" "b" "g" "g" "g" "b" "b" "b" "b" "b" "g" "g" "g" "g" "g" "b" "g" "b" "b"
[47] "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g" "g"
[70] "g" "g"

我已经尝试过了。

iono_test_y <- as.numeric(as.character(iono_test_y)

但好像没有生效。我该怎么办?


2
你期望的输出是什么? - Ronak Shah
当你有一个恰好是因子的数字时,例如 x = factor(2012:2017)as.numeric(as.character()) 的效果非常好。你有一堆字母,R 不知道你想要如何将字母转换为数字(我们也不知道)。 - Gregor Thomas
看起来你的“已经尝试过这个”缺少一个括号。 - russellpierce
尝试使用 iono_test_y <- as.numeric(iono_test_y),不要使用 as.character - G5W
@RonakShah 我猜是0或1吧.... - Bruno Camarda
显示剩余3条评论
1个回答

12

看起来你的变量只是一个字符向量,而不是因子。你可以通过使用

as.numeric()

函数给它一个数字编码。

as.numeric(factor(iono_test_y))

1
是的!非常感谢你! :3 - Bruno Camarda
@G5W 我用我的向量尝试了一下,结果还不错,只是编号没有按照任何特定的顺序。例如:我希望它们按照唯一名称的顺序进行排序,比如将c("a", "b", "b", "c", "d")转换为c(1,2,2,3,4),但我得到的结果是c(2,4,4,3,1)。有什么解决办法吗? - Daniel Pardejo
@DanielPardejo 结果是按照数据中出现的顺序排列的。如果您想对它们进行排序,只需使用 sort - 即 sort(as.numeric(factor(iono_test_y))) - G5W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接