数据框如何处理数据类型?

时间:2016-04-02 10:37:03

标签: r dataframe

我遇到了一个我不明白的问题,到目前为止找不到解释。这是一个例子:

x = matrix(data = "test", nrow = 5, ncol = 3)
typeof(x[1, 1])
> "character"

x = as.data.frame(x)
typeof(x[1, 1])
> "integer"

为什么as.data.frame()将数据强制转换为整数类型以及如何防止它发生?

1 个答案:

答案 0 :(得分:2)

matrix只能容纳一个班级。通常,我们将matrix用于数字元素。假设matrix中的单个元素是非数字的,它会将整个矩阵转换为character类。

关于OP的帖子,我们有matrixcharacter个元素。将matrix强制转换为data.frame(使用as.data.frame),它将转换为data.frame,但stringsAsFactors=TRUE)中的默认选项data.frame每列中的字符元素将转换为factor类。当我们使用typeof时,我们会得到integer factor的{​​{1}}表示形式。

使用stringsAsFactors=FALSE

可以避免这种情况
 x1 <- as.data.frame(x, stringsAsFactors=FALSE)