首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一列中的数据转换为多列

将一列中的数据转换为多列
EN

Stack Overflow用户
提问于 2012-03-25 00:13:02
回答 1查看 896关注 0票数 2

我是一个新的R用户,我有以下问题:

我有两列数据。第一列包含标记,第二列包含基因型。每种基因型都有4个标记。因此,在第一列中,我有4次基因型1的名称和相应的4个标记,然后是基因型2和完全相同的4个标记,依此类推。但我希望标记在一列中,基因型在单独的列中,这样我就可以比较不同基因型的标记。我不知道我怎么能做到。

G1有4个标记,G2有相同的4个标记,等等:

代码语言:javascript
复制
-Marker Genotype
M1  G1
M2  G1
M3  G1
M4  G1
M1  G2
M2  G2
M3  G2
M4  G2
M1  G3
M2  G3
M3  G3
M4  G3

我想把R写成这个:

代码语言:javascript
复制
Marker  G1  G2  G3
M1  AA  AA  GG
M2  TT  GG  CC
M3  GG  AA  AA
M4  CC  TT  GG

将每个基因型放在一列中,以便标记之间的比较非常容易。

有没有人对如何工作有一个聪明的想法?

非常提前谢谢你。玛丽

EN

回答 1

Stack Overflow用户

发布于 2012-08-30 08:08:32

你想要某种cast。例如

代码语言:javascript
复制
require(reshape2)

indata <- data.frame(  Marker = rep(c("M1","M2","M3","M4"), 3),
     Genotype = rep(c("G1","G2","G3"), each=4),
     value = c("AA","TT","GG","CC","AA","GG","AA","TT","GG","CC","AA","GG") )

outdata <- dcast(indata, Marker ~ Genotype)

会把你从

代码语言:javascript
复制
> indata
   Marker Genotype value
1      M1       G1    AA
2      M2       G1    TT
3      M3       G1    GG
4      M4       G1    CC
5      M1       G2    AA
6      M2       G2    GG
7      M3       G2    AA
8      M4       G2    TT
9      M1       G3    GG
10     M2       G3    CC
11     M3       G3    AA
12     M4       G3    GG

代码语言:javascript
复制
> outdata
  Marker G1 G2 G3
1     M1 AA AA GG
2     M2 TT GG CC
3     M3 GG AA AA
4     M4 CC TT GG
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9853232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档