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太完美了!我想你应该把它作为一个答案发布,这样我就可以关闭这个帖子:)