これらの線に沿って尋ねられた以前の質問への私の参照を以下に参照してください。
私はtaxize
R でライブラリを実行しています。Taxize には、学名に関連付けられた安定した数値を取得する関数が含まれていますget_tsn()
。
これをインタラクティブ モードまたは非インタラクティブ モードで実行して、複数のヒットから選択するように、それぞれプロンプトが表示されるかどうかを確認できます。
相互の作用:
> tax.num <- get_tsn("Acer rubrum", ask=TRUE)
Retrieving data for taxon 'Acer rubrum'
tsn target commonNames nameUsage
1 28728 Acer rubrum red maple accepted
2 28730 Acer rubrum ssp. drummondii NA not accepted
3 526853 Acer rubrum var. drummondii Drummond's maple accepted
...
More than one TSN found for taxon 'Acer rubrum'!
Enter rownumber of taxon (other inputs will return 'NA'):
非インタラクティブ:
> tax.num <- get_tsn("Acer rubrum", ask=TRUE)
Retrieving data for taxon 'Acer rubrum'
Warning message:
> 1 result; no direct match found
複数の一致がある場合に空の結果が得られないように、このライブラリを対話モードで実行する必要があります。ただし、このスクリプトを子守することは、何百万もの学名に含まれる私のデータのサイズにとってまったく非現実的です。したがって、プロンプトへの応答を自動化して、答えが常に1
. これは、おそらく 99% のケースで正しい答えであり、最終的には 100% のケースで、おそらくこの質問の範囲を超えている理由により、下流で正しい答えにつながります。
したがって、常に応答を自動化するにはどうすればよい1
ですか?
この質問を見て、それに応じてコードを変更しようとしました。
options(httr_oauth_cache=T)
tax.num <- get_tsn("Acer rubrum",ask=T)
ただし、これにより、上記の対話モードで示したのと同じ結果が得られました。
あなたの助けに感謝します。