全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1256 8
2016-05-18
我现在有个9X2的矩阵,如,
genesymbol       miRNA name
1   gene1                 miRNA1   
2   gene1                 miRNA2
3   gene1                 miRNA3
4   gene2                 miRNA4
5   gene2                 miRNA1
6   gene2                 miRNA3
7   gene3                 miRNA4
8   gene3                 miRNA1
9   gene3                 miRNA2

我想生成矩阵为:
          miRNA1   miRNA2   miRNA3   miRNA4
gene1     1             1             1             0
gene2     1             0             1             1
gene3     1             1             0             1


请大牛指教,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-5-18 22:13:15
先增加一列·1·在最后边,列名·value·,然后使用reshape2包来进行格式操作:你的情况是:length -> width

大概过程如下,可能有点小出入:
library(reshape2)
data_wide <- dcast(long_format, genesymbol ~ miRNAName, value.var="value")
data_wide

你google一下会有例子:reshape2 convert length to width
二维码

扫码加我 拉你入群

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

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

2016-5-19 09:44:56
bbslover 发表于 2016-5-18 22:13
先增加一列·1·在最后边,列名·value·,然后使用reshape2包来进行格式操作:你的情况是:length -> widt ...
谢谢,但是没怎么看懂,是在原来函数有边加一列value,整个列元素值都为1吗?
二维码

扫码加我 拉你入群

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

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

2016-5-19 11:12:51
这个问题的思路不是dataframe的变形,而是计数。假设你的那个数据变量名是df,数据结构是dataframe。(如果是矩阵,用as.data.frame自行转化)

table(df) 就是你想要的结果了。
二维码

扫码加我 拉你入群

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

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

2016-5-19 11:19:02
cheetahfly 发表于 2016-5-19 11:12
这个问题的思路不是dataframe的变形,而是计数。假设你的那个数据变量名是df,数据结构是dataframe。(如果 ...
先谢了,您说的正确的。另外,怎么把table(df)转换成矩阵,as.matrix(table(df)),得不到矩阵。。。。
二维码

扫码加我 拉你入群

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

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

2016-5-19 11:39:54
这是一个table类,想要转化成你熟悉的matrix,可以这样:

a <- table(df)
names(attr(a, "dimnames")) <- NULL
class(a) <- "matrix"
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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