R 将数据帧/矩阵转换为不同的有组织矩阵
我有一个和我上次一样的怀疑()。同样,我有如下结构的数据文件:R 将数据帧/矩阵转换为不同的有组织矩阵,r,matrix,parser-combinators,reshape2,phylogeny,R,Matrix,Parser Combinators,Reshape2,Phylogeny,我有一个和我上次一样的怀疑()。同样,我有如下结构的数据文件: OTU1 PIA0 1120 OTU2 PIA1 2 OTU2 PIA3 6 OTU2 PIA4 10 OTU2 PIA5 1078 OTU2 PIN1 24 OTU2 PIN2 45 OTU2 PIN3 261 OTU2 PIN4 102 OTU3 PIA0 16 OTU3 PIA1 59 OTU3
OTU1 PIA0 1120
OTU2 PIA1 2
OTU2 PIA3 6
OTU2 PIA4 10
OTU2 PIA5 1078
OTU2 PIN1 24
OTU2 PIN2 45
OTU2 PIN3 261
OTU2 PIN4 102
OTU3 PIA0 16
OTU3 PIA1 59
OTU3 PIA2 27
OTU3 PIA3 180
OTU3 PIA4 200
OTU3 PIA5 251
OTU3 PIN0 36
OTU3 PIN1 61
OTU3 PIN2 156
OTU3 PIN3 590
OTU3 PIN4 277
OTU4 PIA0 401
OTU4 PIN0 2
PIA0 1120 OTU1
PIA0 16 OTU3
PIA0 401 OTU4
PIA1 2 OTU2
PIA1 59 OTU3
PIA2 27 OTU3
PIA3 6 OTU2
PIA3 180 OTU3
PIA4 10 OTU2
PIA4 200 OTU3
PIA5 1078 OTU2
PIA5 251 OTU3
PIN0 36 OTU3
PIN0 2 OTU4
PIN1 24 OTU2
PIN1 61 OTU3
PIN2 45 OTU2
PIN2 156 OTU3
PIN3 261 OTU2
PIN3 590 OTU3
PIN4 102 OTU2
PIN4 277 OTU3
但现在我想创建一个文件,将三列的计数合并起来,大致如下所示:
OTU1 PIA0 1120
OTU2 PIA1 2
OTU2 PIA3 6
OTU2 PIA4 10
OTU2 PIA5 1078
OTU2 PIN1 24
OTU2 PIN2 45
OTU2 PIN3 261
OTU2 PIN4 102
OTU3 PIA0 16
OTU3 PIA1 59
OTU3 PIA2 27
OTU3 PIA3 180
OTU3 PIA4 200
OTU3 PIA5 251
OTU3 PIN0 36
OTU3 PIN1 61
OTU3 PIN2 156
OTU3 PIN3 590
OTU3 PIN4 277
OTU4 PIA0 401
OTU4 PIN0 2
PIA0 1120 OTU1
PIA0 16 OTU3
PIA0 401 OTU4
PIA1 2 OTU2
PIA1 59 OTU3
PIA2 27 OTU3
PIA3 6 OTU2
PIA3 180 OTU3
PIA4 10 OTU2
PIA4 200 OTU3
PIA5 1078 OTU2
PIA5 251 OTU3
PIN0 36 OTU3
PIN0 2 OTU4
PIN1 24 OTU2
PIN1 61 OTU3
PIN2 45 OTU2
PIN2 156 OTU3
PIN3 261 OTU2
PIN3 590 OTU3
PIN4 102 OTU2
PIN4 277 OTU3
我的意思是,我需要做的是对数据进行新的排序,将第一列留给第二列的数据(现在看起来是有组织的),另外两列留给第三列和最后第一列的数据
R包“重塑2”是否有可能再次实现这一点?可能使用“dcast”或“acast”
目标是构建一个与示例中的第二个类似的矩阵,以便我可以使用这些数据运行
再次非常感谢
x您尝试了什么?你真的只是在问如何更改列顺序以及如何按给定列排序吗?想法是让它作为“示例”文件在PHYLOCOM中运行。我试图组织它,然后运行程序,所以我想我这样做的方式并不完全正确。
x <- read.table(textConnection("
OTU1 PIA0 1120
OTU2 PIA1 2
OTU2 PIA3 6
OTU2 PIA4 10
OTU2 PIA5 1078
OTU2 PIN1 24
OTU2 PIN2 45
OTU2 PIN3 261
OTU2 PIN4 102
OTU3 PIA0 16
OTU3 PIA1 59
OTU3 PIA2 27
OTU3 PIA3 180
OTU3 PIA4 200
OTU3 PIA5 251
OTU3 PIN0 36
OTU3 PIN1 61
OTU3 PIN2 156
OTU3 PIN3 590
OTU3 PIN4 277
OTU4 PIA0 401
OTU4 PIN0 2"))
y <- x[with(x, order(V2, V1)), c(2, 3, 1)]
head(y)
V2 V3 V1
1 PIA0 1120 OTU1
10 PIA0 16 OTU3
21 PIA0 401 OTU4
2 PIA1 2 OTU2
11 PIA1 59 OTU3
12 PIA2 27 OTU3