如何在R中更改矩阵列的类型

8
我有一个矩阵,想将第五列的字符类型改为数值型,但我无法成功。我尝试了以下方法:
test1[,5] <- as.numeric(test1[,5])

但是再次提醒,列类别是字符而不是数字。我该怎么办呢? 谢谢


8
翻译:矩阵中只能有一种数据类型。 - Marius
@Marius,实际上我需要根据这一列对我的矩阵进行排序,但我需要按数字视图而不是字符来排序。有什么办法吗? - hora
4
请尝试使用 test1[order(as.numeric(test1[, 5])), ] - flodel
@flodel 是的,谢谢,它起作用了。我花了很多时间来更改列类型。 - hora
1个回答

9
像 @Marius 所说,矩阵只能容纳一种数据类型。由于数据框架可以为每个列容纳不同的数据类型,因此您可以将矩阵转换为数据框架。从一个格式转换到另一个格式的函数是 as.data.frameas.matrix。然后,您就可以将您发布的列转换代码应用于数据框架。
但是,您在评论中提到,您的最终目标是根据强制转换列的值重新排序矩阵。在重新排序矩阵之前,您不需要在原地强制转换列,您可以使用以下方法动态完成所有操作:
test1[order(as.numeric(test1[, 5])), ]

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