今天(或者说一直以来)犯了(着)一个很傻的错误。R的资料很多在看的时候不知道那东西用来做什么、怎么用,于是看过就忘了,比如数据的Type和Class。
用read.table读入数据框x,用typeof(x)返回“list”,我就震惊了,怎么说都应该是data frame啊。于是尝试了各种argument,各种数据格式,读取进来仍是list(已经耗费了我近1小时时间)。然后群里面有一热心的哥们儿帮我排解问题,搞了好久,赫然醒悟。我想要看的是Class,而不是Type。Type是指储存形式,Class才是变量的类型,还有一个Mode也是储存类型不过表达和Type不同。我瞎折腾了半天的“list”其实一直也都是data frame……
一知半解就是麻烦,有空都记下来好好学呀亲!typeof(x), class(x), mode(x)
另:我把13个data frame放到一个list里后,用list[n]可以调出第n个data frame,但是在一个语句就必须要写成list[[n]]才行,不知这又是为何?
>month[n] 是可以的。
>for (n in 1:13){
d <- vegdist(log(month[[n]]+1),method=”bray”);
x <- hclust(d,method=”ward”);
plot(as.dendrogram(x),horiz=T)
} 这里如果写month[n]就会报错。
(vegan的decostand()的log方法不会变换0值,不用+1)