全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3552 6
2016-06-06
悬赏 5 个论坛币 已解决
新手,问一个数据转换的问题:

lars包中的数据框diabetes里面有3个变量(x y x2),其中x和x2是矩阵
在RStudio里面直接打开是这样的:
无标题.png

我想把矩阵数据提取出来,重新生成一个不是嵌套matrix的数据框,类似于这样:

无标题.png



####################################################
#数据和测试代码
install.packages("lars")
library("lars");
data("diabetes");
x = diabetes$x;  #RStudio里面显示变量的Type是AsIs,不是期望的matrix
fix(x); #会蹦出来一个文本文件

#as.matrix和as.data.frame的结果都不对...
xm = as.matrix(x); #Type还是AsIs  不是期望的matrix

xm = as.data.frame(x); #Type是data frame 但matrix还是嵌套在里面,不是期望的结果


#重新构造一个matrix倒是可以
xm = matrix(x,dim(x)[1],dim(x)[2]);
colnames(xm) = colnames(x);


请问:
1. AsIs算什么数据格式?
2. 嵌套matrix的data.frame是用什么命令生成的?
3. 有没有类似as.matrix之类的命令,能够直接变成matrix或者data frame(而不是matrix+colnames两步)???


最佳答案

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-6-6 16:25:33
x <- diabetes$x
class(x) <- class(x)[-match("AsIs", class(x))]
attr(x, "dimnames") <- NULL
str(x)
is.matrix(x)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-6 21:13:02
bbslover 发表于 2016-6-6 16:25
x
谢谢~~~~

能不能再解释下
1. 为啥执行class(x) = NULL就能把x变成matrix了?
2. 有什么参考书讲了相关的知识么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-6 22:08:11
class(x)[-match("AsIs", class(x))]  看一下这个结果
attr(x, "dimnames") <- NULL  这步之后,才是矩阵
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-7 10:03:08
bbslover 发表于 2016-6-6 22:08
class(x)[-match("AsIs", class(x))]  看一下这个结果
attr(x, "dimnames")
class(x)[-match("AsIs", class(x))]      结果是  character(0)
这一句已经把数据变成Matrix了..
使用 class(x) = NULL; 的结果是一样的

attr(x, "dimnames") <- NULL   这一句把列名去掉了....为什么去掉这个?我还需要保留着列名呢


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-7 20:22:47
ok  如果你要保留名字,也可以不去掉
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群