【发布时间】:2021-08-04 11:37:22
【问题描述】:
我有一个大型数据集 (asv_ar2),指示给定物种在给定位置被记录的次数。如下所示:
| Specie | loc1 | loc2 | loc3 | loc4 |
|---|---|---|---|---|
| sp1 | 0 | 1 | 0 | 4 |
| sp2 | 7 | 3 | 0 | 2 |
| sp3 | 3 | 1 | 0 | 0 |
我想为每个物种获取一个列表/表格,其中包含找到它的位置(该变量的值不为 0)。比如:
- sp1 loc2, loc4
- sp2 loc1, loc2, loc4
- sp3 loc1, loc2
或相反,在某个位置发现的物种。
我可以使用 dplyr 的过滤功能选择值>0 的行,但只能逐个位置。
a1<-filter(asv_ar2,asv_ar2[,2]>0)[,c(1,2,8)]
我尝试制作一个将它们连接在一起的循环,但它只显示第一个位置
for(i in 2:1156){ locs<-filter(asv_ar2,asv_ar2[,i]>0)[c(1,i)]}
我不知道如何加入所有迭代。或者如果有更好的方法来完成这一切。
有什么建议吗?
谢谢
【问题讨论】:
标签: r