R 数据帧如何处理数据类型?

R 数据帧如何处理数据类型?,r,dataframe,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()将数据强制为整数类型以及如何防止它发生吗?矩阵只能包含一个类。通常,我们对数值元素使用矩阵。假设矩阵中有一个非数值元素,它会

我遇到了一个我不理解的问题,到目前为止找不到解释。以下是一个例子:

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()
将数据强制为整数类型以及如何防止它发生吗?

矩阵
只能包含一个类。通常,我们对数值元素使用
矩阵
。假设
矩阵
中有一个非数值元素,它会将整个矩阵转换为
字符

关于OP的帖子,我们有一个
矩阵
,包含
字符
元素。将
矩阵
强制为
data.frame
(使用
作为.data.frame
),它将转换为
data.frame
,但是
data.frame
中每个列中的'character'元素的默认选项(
stringsAsFactors=TRUE)
将其转换为
factor
类。当我们使用
typeof
时,我们得到
因子的
整数
表示

这可以通过使用
stringsAsFactors=FALSE来避免

 x1 <- as.data.frame(x, stringsAsFactors=FALSE) 

x1太完美了!我想你应该把它作为一个答案发布,这样我就可以关闭这个帖子:)