分析和总结或生态样本

时间:2016-01-16 18:08:16

标签: r statistics dataset bar-chart

我正在研究这个数据集:

dat<-read.table(text = "Sample    Pho    Spec
         1    FagS     Lic1
         2    FagS     Lic1
         3    FagS     Lic2
         5    QueP     Lic2
         6    QueP     Lic1
         7    FagS     Lic1
         8    FraE     Lic3
         9    FraE     Lic4, header=T)

我会通过phorophytes(Pho)了解物种(Spec)的多样性,并且能够通过比较Pho的SpecDiv和Pho的样品量(NuOfSa)来思考这些信息。

示例:

Pho     SpecDiv    NuOfSa    Ratio
FagS    2          4         0.5
QueP    2          2         1
FraE    2          2         1

目标是通过&#34; barplot&#34;绘制此信息。为了比较phorophytes之间的物种多样性。

非常感谢您的帮助;)

R上。

2 个答案:

答案 0 :(得分:2)

这将是一个基本解决方案(在替换示例代码中缺少的双引号后):

temp <- cbind( SpecDiv= rowSums( with(dat, table( Pho, Spec))>0 ),
 NuOfSa=with(dat, table( Pho)))
final <- cbind( temp, ratio=temp[,1]/temp[,2])
final
#--------
     SpecDiv NuOfSa ratio
FagS       2      4   0.5
FraE       2      2   1.0
QueP       2      2   1.0

最困难的部分是通过phorophytes(Pho)来确定短语“specie(Spec)多样性”的含义。在未来,您应该更彻底地解释您的域特定约定,以便非生态学家能够提供更好的帮助。将好的数据折叠到现在或不存在的概念似乎导致严重丢失数据,以便我理解统计观点。我怀疑在观察集中是否“偶尔”(用“鸟”的语言)确实有资格增加“物种多样性”。

绘图任务等待<what>的更好描述将针对<what>绘制。

答案 1 :(得分:1)

我们可以使用setDT(dat)。将'data.frame'转换为'data.table'(length),按“Pho”分组,我们得到unique“Spec”的uniqueN.N )和行数(library(data.table) setDT(dat)[,list(SpecDiv=uniqueN(Spec), NuOfSa=.N) , Pho][, ratio:= SpecDiv/NuOfSa][] # Pho SpecDiv NuOfSa ratio #1: FagS 2 4 0.5 #2: QueP 2 2 1.0 #3: FraE 2 2 1.0 ),然后通过将一个除以另一个来获得“比率”

for loop