因此,我将数据帧转换为as.matrix(df):
m<-as.matrix(df)但随后:
> is.numeric(m)
[1] FALSE我甚至试着看看矩阵中的某个因素是否是数字:
> is.numeric(m[15,15])
[1] FALSE还有人发生过这种事吗?
发布于 2013-12-07 22:16:30
使用
dims <- dim(m)
m <- as.numeric(m)
dim(m) <- dims 可能要将上述内容封装在一个函数中。
as.matrix不一定会将任意的data.frame转换为数字。
例:
x <- data.frame(LETTERS)
m <- as.matrix(x)
is.numeric(x)
# [1] FALSE
is.character(x)
# [1] TRUE发布于 2013-12-07 22:31:41
啊,R数据类型的乐趣。
R中的矩阵具有twp的特殊属性:每一列必须具有相同的长度,每个元素必须具有相同的数据类型。所以你可以有一个字符矩阵,或者一个数字矩阵,但是你不能同时拥有一个矩阵。
现在,假设您有一个数据框架df,它有两个列,A和B。A有字符,B有数字。这对于数据帧来说是很好的。但现在你做到了:
m <- as.matrix(df)正如@Sven在下面指出的那样,矩阵的结果数据类型基于最一般的数据类型(字符>数字>整数>逻辑)。R将强制使用m中的其他数据类型。它不会警告您(除非强制创建NA's,这是可能的)。
https://stackoverflow.com/questions/20447289
复制相似问题