【发布时间】:2019-06-09 21:26:31
【问题描述】:
我想将数据框转换为 R 中的矩阵。数据框有 30 多个不同类型的变量,其中一些是数字,一些是因子和一些字符。将其转换为矩阵时,我希望所有类型与数据框中的类型完全相同。
我尝试使用 as.matrix() 对其进行转换,请参见下面的代码(这只是一个简单的示例数据框,只有两个变量)。
test_df <- data.frame(a = c(1:10), b = c(letters[1:10]))
test_df <- as.matrix(test_df)
typeof(test_df[,1])
typeof(test_df[,2])
示例中的“a”列具有整数类型,而“b”列具有类型因子。我希望在将数据框转换为矩阵时,每一列都保持其类型。但是,当我将其转换为矩阵时,所有变量都被转换为字符类型。
【问题讨论】:
-
我很想知道你为什么要追求这个?一个矩阵只能有一种类型的数据。是否有其他方法可以满足您的需求?
-
因为我必须遍历数据帧,这需要很长时间,因为它有超过 400 万行。我注意到循环矩阵要快得多。我希望我可以将数据帧转换为矩阵,然后循环遍历它,然后再将其转换回数据帧。但从你的回答我明白这是不可能的。
-
如果您显示您正在使用的代码的确切问题,那么有人可能会以更有效的方式帮助您