我试图跟踪花粉计数的采样工作量。我的小组试图看看我们计算的花粉种类数与计算的谷物总数相比有多少。这些类似于稀疏和物种积累曲线,但这些r包太复杂,不能满足我们团队所需的简化输出。
我有一个基于键盘的计数器程序,它允许我为花粉物种分配唯一的字母数字区分大小写的字符,并将它们输入到文本编辑器中。然后程序将此字符串转换为csv文件,其中包含样本中的花粉种类和每个种类的计数。
由于该程序使用字符串,我希望能够识别字符串中唯一字符的位置。这将产生唯一字符的第一次出现的位置向量。示例:
字符串"1bd3db12"
将产生输出:
[1] 1 2 3 4 8
我研究了正则表达式并提取函数,但我找不到能识别字符串中第一个唯一字符位置的函数。自动化这个过程可以为我的小组节省大量的时间,因为我们有时会得到由30-40种物种组成的500-600粒花粉计数。
感谢您的帮助。
答案 0 :(得分:5)
将其拆分为字符,查找哪些字符不重复
s="1bd3db12"
which(!duplicated(strsplit(s,"")[[1]]))
[1] 1 2 3 4 8