1.不使用递归的方法调用。
public void traverseFolder1(String path) {
int fileNum = 0, folderNum = 0
File file = new File(path)
if (file.exists()) {
LinkedList list = new LinkedList()
File[] files = file.listFiles()
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夹:" + file2.getAbsolutePath())
list.add(file2)
fileNum++
} else {
System.out.println("文件:" + file2.getAbsolutePath())
folderNum++
}
}
File temp_file
while (!list.isEmpty()) {
temp_file = list.removeFirst()
files = temp_file.listFiles()
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夹:" + file2.getAbsolutePath())
list.add(file2)
fileNum++
} else {
System.out.println("文件:" + file2.getAbsolutePath())
folderNum++
}
}
}
} else {
System.out.println("文件不存在!")
}
System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum)
}
也做了挺多次RDA分析,自己现在小结一下RDA分析流程:
就我个人而言,虚线前面都是不太经历的步骤,我一般不会主动删去样品的环境信息,因为我接触的菌群这块本来就没有什么多余的环境信息-_-||,所以我的重点放在怎么去除多余OTU或菌群上面。
一般而言,我首先会做一次差异分析,挑选有差异的OTU或菌群进行展示(phyloseq推荐使用DESeq2和edgeR,详见 Waste Not, Want Not: Why Rarefying Microbiome Data Is Inadmissible ),这里不是重点不在赘述。
但是差异OTU或菌群还有可能太多,RDA呈现出来密密麻麻的,调也得调好久,最后还是好不美观。
偶然间,发现envfit不仅可以评估环境因子的显著性,也可以评估物种的相关性和显著性,这为我们进一步去取冗余物种提供了条件,值得记录下来学习。
示例:
在进行循环的时候,经常需要把环境中的变量通过字符的形式提取出来并赋值给新的变量,涉及到环境变量和字符的转换问题。在R语言中,,可以通过 assign() 和 get() 这两个函数操作。
get :返回和字符串同名的变量的值
assign :将字符串变量的字符进行复制
get和assign是互为镜像的两个函数。
这样在环境中,就生成了100个变量,分别为 data_1到data_100。因此assign可以进行批量的赋值,并且有规律的控制变量名
比如我们需要把上面的data_1到data_100的变量存成rda
这样我们就把data开头的数据通循环的方式,写入到了rda的数据中。
https://zhuanlan.zhihu.com/p/30383865