“CFINDER”输出数据输入和对的平均值计算

时间:2015-07-03 12:58:24

标签: r text

我遇到了一个问题:我必须导入一个文本文件(from_soft.txt,它是从“CFINDER”软件输出的)。它看起来像这样:

from_soft:
# text-text-text-text-text-text-text-text-text-text-
# text-text-text-text-text-text-text-text-text-text-
# text-text-text-text-text-text-text-text-text-text-
# text-text-text-text-text-text-text-text-text-text-

1: SpeciesA SpeciesB SpeciesC SpeciesD SpeciesE
2: SpeciesA SpeciesC SpeciesE SpeciesD SpeciesF SpeciesG SpeciesH
3: SpeciesB SpeciesC SpeciesF
4: SpeciesB SpeciesC SpeciesD SpeciesF SpeciesH
[...]

由于readLines

,我设法将其导入R中
cliques<-readLines("from_soft.txt",n=-1,ok=T,warn=T,encoding="unknow",skipNul=F)

由于以下原因,我删除了第一行:

from_soft<-as.data.frame(from_soft)[-(1:5),]

from_soft就是这样:

head(from_soft)
[1] 0: SpeciesA SpeciesB SpeciesC SpeciesD SpeciesE   1: SpeciesA SpeciesB SpeciesC SpeciesD SpeciesE   2: SpeciesA SpeciesB SpeciesC SpeciesD SpeciesE  
[4] 3: SpeciesB SpeciesC SpeciesD SpeciesF SpeciesH [...]

另一方面,我有一张表ref,表示每对物种的“价值”。它看起来像这样:

print(ref)
3324   SpeciesA  SpeciesB       1
3325   SpeciesA  SpeciesC       2
3326   SpeciesA  SpeciesD      12
3327   SpeciesA  SpeciesE       1
3328   SpeciesA  SpeciesF      71
3329   SpeciesA  SpeciesG       6
3330   SpeciesA  SpeciesH      15
3331   SpeciesB  SpeciesC       2
3332   SpeciesB  SpeciesF       4
3333   SpeciesB  SpeciesD      17
[...]

from_soft的每一行都对应于图表中的“clique”。这意味着每个物种彼此相互连接。我想为每一行计算'平均连接'。

作为行1:的示例,这里是所有现有的对:

1: SpeciesASpeciesB|SpeciesASpeciesC|SpeciesASpeciesD|SpeciesASpeciesE|SpeciesBSpeciesC|SpeciesBSpeciesD|SpeciesBSpeciesE|SpeciesCSpeciesD|SpeciesCSpeciesE|SpeciesDSpeciesE|

每个现有对都有ref中给出的值。我想要的输出文件是这样的表:

1: 3.5 (= mean of all pairs in the clique '1:')
2: 4.2
3: 1.5
4: 6
[...]

有任何想法吗?

感谢您的帮助!!

R上。

0 个答案:

没有答案