我是新用户,我遇到以下问题:
我有两列数据。第一列包含标记,第二列包含基因型。每种基因型都有4个标记。因此,我在第一列中有4倍基因型1的名称和4个标记,然后基因型2跟随完全相同的4个标记,依此类推。但是我希望一列中的标记和每一个单独的列中的genoytpes,所以我可以比较genoytypes中的标记。我不知道我怎么做。
G1有4个标记,G2有4个标记等:
-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对此:
Marker G1 G2 G3
M1 AA AA GG
M2 TT GG CC
M3 GG AA AA
M4 CC TT GG
将每个基因型放在一列中,以便比较标记非常容易。
有人明白这是如何运作的吗?
非常感谢提前。 玛丽
答案 0 :(得分:1)
你想要某种cast
。例如
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)
将带你从
> 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
到
> 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