4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rで農薬検索をする[実践編]

Posted at

前回、農薬の登録データをダウンロードしてRに取り込んだ。次は検索をしたいのだけれども、実はこれが結構難しい。

お約束

実際の登録内容がすべてです。

!!!!!農薬は有効期限内のものをラベルの記載を守って使用しましょう!!!!!

農薬を検索するということ

農薬というのは作物名、対象病害虫名、使用方法、使用量などが定められていて、それに従って使用する必要がある。

たとえばナスにアブラムシが出たとして、それを防除するためには

  • 使える作物名にナスが入っている
  • 対象病害虫名にアブラムシが入っている

という条件を満たす農薬を探して、定められた使用方法で使用しなければならない。

簡単そうだ。だが現実はそうではない。

対象病害虫の曖昧さ

まず適用病害虫名に「アブラムシ」を含むものを抽出してみると、これだけで21種類あってつらい。

chemicals %>% filter(適用病害虫雑草名 %like% "アブラムシ") %>% select(適用病害虫雑草名) %>% unique %>% knitr::kable()
適用病害虫雑草名
アブラムシ類
ユキヤナギアブラムシ
コミカンアブラムシ
ブドウネアブラムシ
ジャガイモヒゲナガアブラムシ
ワタアブラムシ
ムギクビレアブラムシ
クワイクビレアブラムシ
イバラヒゲナガアブラムシ
モミジニタイケアブラムシ
クリイガアブラムシ
モモアカアブラムシ
フキアブラムシ
マメアブラムシ
カンシャワタアブラムシ
カイガラムシ類、アブラムシ類、コナジラミ類、アザミウマ類等
マキシンハアブラムシ
サルスベリヒゲマダラアブラムシ
キクヒメヒゲナガアブラムシ
キョウチクトウアブラムシ
ミナミキイロアザミウマ、オンシツコナジラミ、モモアカアブラムシ、ワタアブラムシ、コナガ、カンザワハダニ、ナミハダニ、コナカイガラムシ等

つまり、ナスに発生しているアブラムシの種類によって使える農薬の種類が変わる可能性がある。

しかも、上記リストの中には**「アブラムシ類」**のようなものがある。つまり、例えばナスにワタアブラムシが出ていた場合、「ワタアブラムシ」で登録のある農薬の他に「アブラムシ類」で登録のある農薬も使えるのである。

更に曖昧な対象作物名

対象作物はさらに厄介で、ナスに使える可能性のある作物名の表現は33種類あって、表現も一貫性がなくてとてもつらい。

$作物名
[1] "なす"
[2] "野ソが加害する農作物等"
[3] "野菜類"
[4] "ナメクジ類、カタツムリ類、アフリカマイマイが加害する農作物等"
[5] "なす(露地栽培)"
[6] "ナメクジ類、カタツムリ類が加害する農作物等"
[7] "モグラが加害する農作物等"
[8] "野ソあるいはモグラが加害する農作物等"
[9] "きゅうり、すいか、メロン、トマト、なす、ピーマン、いちご、かんきつ、ぶどう、ばら、きく、カーネーション、シクラメン等"
[10] "野菜類(豆類(未成熟)を除く)"
[11] "なす科野菜"
[12] "野菜類(パセリ、えごま(葉)を除く)"
[13] "稲、麦類、果樹類、野菜類、花き類、茶、芝 等"
[14] "果樹類、野菜類、花き類・観葉植物、その他の一般畑作物"
[15] "野菜類(すいか、かぼちゃ、トマト、ミニトマト、ねぎ、わけぎ、あさつき、いちごを除く)"
[16] "野菜類(いちごを除く)"
[17] "野菜類(トマト、ミニトマトを除く)"
[18] "野菜類(施設栽培)"
[19] "なす(施設栽培)"
[20] "野菜類(はくさいを除く)"
[21] "野菜類(かぼちゃ、ズッキーニを除く)"
[22] "野菜類(水耕栽培)"
[23] "野菜類(いちご、トマト、ミニトマトを除く)"
[24] "野菜類(はくさい、えごま(葉)を除く)"
[25] "ナメクジ類、カタツムリ類、アフリカマイマイ、ヒメリンゴマイマイが加害する農作物等"
[26] "野菜類(キャベツを除く)"
[27] "コナガ、オオタバコガが加害する農作物等"
[28] "コナガ、オオタバコガ、ヨトウガが加害する農作物等"
[29] "野菜類(ほうれんそうを除く)"
[30] "野菜類(はくさい、ブロッコリー、キャベツ、レタス、かぼちゃ、ズッキーニ、しょうがを除く)"
[31] "野菜類(施設栽培、ただし、いちごを除く)"
[32] "野菜類(施設栽培、ただし、トマト、ミニトマトを除く)"
[33] "野菜類(はくさい、きゅうりを除く)"

しかもこれで網羅できているのかどうかあまり自信がない。「○○が加害する農作物等」シリーズなんかは正確に使用可能作物を特定するの無理なのではという感じが強くてつらい。

作物名にはグループの概念があって、上位グループで登録があれば下位グループの作物でも使用できるという関係になっている。

なお、どのような作物名があってどのような作物がグループ関係にあるかはFAMICのWebサイト内(農薬登録における適用作物名について - 独立行政法人農林水産消費安全技術センター(FAMIC))に表があるが、これは別に作物名もグループも網羅していないので、参考程度にしかできない。

検索をしていく

ともあれやっていきましょう。

data.tableにしておく

大分検索が早くなる印象。

# data.tableに変換
chemicals <- data.table(chemicals)
keycols = c("農薬の名称")
setkeyv(chemicals, keycols)

検索情報を整理する

検索にあたっては、

  • 作物名として可能性のあるもの
  • 「○○が加害する農作物」の○○で該当の可能性があるもの
  • 除外したいもの

の3つの情報があればなんとかなる。と思いたい。

ここでいう除外したいものというのは、例えば「なす」に対する「はまなす」のようなもの。

従って、この3つの情報を備えたcsvファイルかなんかを支度しておき、そいつを 勘と経験に基づいて 整備していけばよい。 勘と経験が無い場合は修行する 。ちなみに作物名のバリエーションは現時点で1242通りあって、つらい。

とりあえず作業の都合上なすの分だけR上で入力しておく。

# 作物名一覧表の作成
if(not(file.exists("crop_find_table.csv"))){
  chemicals %>% select(作物名) %>% unique %>%  ## 初回のみ実行
    write.csv("crop_find_table.csv")  
}
crop_table <- read_csv("crop_find_table.csv")
crop_table$main_crop = NA
crop_table$kagai = NA
crop_table$exclude = NA

crop_table[crop_table$作物名=="なす", ]$main_crop =
  "なす, 野菜類"
crop_table[crop_table$作物名=="なす", ]$kagai =
  "モグラ, 野ソ, ナメクジ, オオタバコガ"
crop_table[crop_table$作物名=="なす",]$exclude =
  "はまなす, うり科野菜類"

検索用関数を整備する

検索対象作物を探す

まずは検索対象となりうる作物名を列挙する。

ちゃんとした正規表現を組み立てる能力がないので先程用意した検索条件から正規表現っぽい文字列を構築する。

# csvファイル内の情報から正規表現パターンを生成
as_kagai_regexp <- function(str){ 
  str_c(".*(", 
        str_split(str, ",") %>% unlist %>% str_trim %>% str_c(collapse="|"),
        ").*が加害する農作物等")
}
as_mainc_regexp <- function(str){
  str_c(".*(", 
        str_split(str, ",") %>% unlist %>% str_trim %>% str_c(collapse="|"),
        ").*")  
}
as_exclude_regexp <- function(str){
  str_c(".+(", 
        str_split(str, ",") %>% unlist %>% str_trim %>% str_c(collapse="|"),
        ").*を除く")  
}

対象作物の検索はdata.tablekeyを使った抽出を一発目にやっておいてその後filterで絞り込むようにすると早かった。それでも20msくらいかかっているので本当はもう少しなんとかしたい。

find_target_crop_list <- function(crop_name){ 
  # pattern生成
  kagai <- as_kagai_regexp(crop_table %>% filter(作物名 == crop_name) %>% `[[`("kagai"))
  maincrop <- as_mainc_regexp(crop_table %>% filter(作物名 == crop_name) %>% `[[`("main_crop"))
  exclude <- as_exclude_regexp(crop_name)
  exclude2 <- as_mainc_regexp(crop_table %>% filter(作物名 == crop_name) %>% `[[`("exclude"))
  # crop_tableのkagai, maincropが空欄ならそのまま名前を使う
  if(is.na(maincrop)) maincrop <- as_mainc_regexp(crop_name)
  # exclude2がNAのときはマッチしない文字列で埋める
  if(is.na(exclude2)) exclude2 <- "no_match_string"
  # 抽出
  result <- crop_table["作物名"] %>% 
    filter(
      (
        作物名 %like% kagai | # NAで無効化
          作物名 %like% maincrop # NAで無効化
      ) &
        not(作物名 %like% exclude) &
        not(作物名 %like% exclude2)
    ) %>% c
  return(result)
}

農薬を探す関数をつくる

病害虫名のブレは作物名ほどひどくないので、%like%でふわっと指定しておけばきっと大丈夫。

# 登録内容を一覧表示する(作物名と病害虫名から)
findchem_crop_pest <- function(crop_name, pest_name){
  crop_list <- find_target_crop_list(crop_name)
  chemicals[適用病害虫雑草名 %like% pest_name] %>%
    filter(作物名 %in% unlist(crop_list))
}

検索

はい。

findchem_crop_pest("なす", "アブラムシ") %>%
  select(農薬の名称, 作物名, 適用病害虫雑草名) %>%
  distinct %>% data.frame %>% knitr::kable()

現時点では224種の農薬が「なす」に使えそうで「アブラムシ」を殺せそうです。

!!登録は変更される場合があります。実際に防除を行う場合は、ラベルの記載をよく確認して、有効期限内の農薬を使用しましょう!!

農薬の名称 作物名 適用病害虫雑草名
GFモストップジンRスプレー なす アブラムシ類
HJブルースカイ粒剤 なす アブラムシ類
ISKテルスターフロアブル なす アブラムシ類
ISKテルスター水和剤 なす アブラムシ類
MICアディオン乳剤 なす アブラムシ類
MICスターガードプラスAL なす アブラムシ類
OATベリマークSC なす アブラムシ類
STアクテリック乳剤 なす アブラムシ類
「興農」ジェネレート粒剤 なす アブラムシ類
あめんこ 野菜類 アブラムシ類
あめんこ100 野菜類(いちご、トマト、ミニトマトを除く) アブラムシ類
アクタラ粒剤5 なす アブラムシ類
アクタラ顆粒水溶剤 なす アブラムシ類
アグロスダイアジノン乳剤40 なす(露地栽培) アブラムシ類
アグロスダイアジノン水和剤34 なす(露地栽培) アブラムシ類
アグロスリン乳剤 なす アブラムシ類
アグロスリン水和剤 なす アブラムシ類
アザミバスター水和剤 なす アブラムシ類
アディオン乳剤 なす アブラムシ類
アドマイヤー1粒剤 なす アブラムシ類
アドマイヤーフロアブル なす アブラムシ類
アドマイヤー水和剤 なす アブラムシ類
アドマイヤー顆粒水和剤 なす アブラムシ類
アフィパール 野菜類(施設栽培) アブラムシ類
アブラバチAC 野菜類(施設栽培) アブラムシ類
アベイル粒剤 なす アブラムシ類
アルバリン粒剤 なす アブラムシ類
アルバリン顆粒水溶剤 なす アブラムシ類
アントム顆粒水溶剤 なす アブラムシ類
アースガーデンT なす アブラムシ類
アーデント水和剤 なす アブラムシ類
アーリーセーフ なす アブラムシ類
アーリーセーフスプレー 野菜類 アブラムシ類
イマージ液剤 なす アブラムシ類
ウィニングスプレー なす アブラムシ類
ウララDF なす アブラムシ類
エコピタ液剤 野菜類(いちご、トマト、ミニトマトを除く) アブラムシ類
オルトランDX粒剤 なす アブラムシ類
オルトラン粒剤 なす アブラムシ類
オレート液剤 野菜類(いちごを除く) アブラムシ類
オールスタースプレー なす アブラムシ類
カゲタロウ 野菜類(施設栽培) アブラムシ類
カダンV なす アブラムシ類
カダンVII なす アブラムシ類
カダンセーフ 野菜類 アブラムシ類
カダンセーフ原液 野菜類 アブラムシ類
カダンプラスDX なす アブラムシ類
カメノコS 野菜類(施設栽培) アブラムシ類
カヤク・ダイアジノン乳剤40 なす(露地栽培) アブラムシ類
ガーディーAL なす アブラムシ類
ガーデンアシストVスプレー なす アブラムシ類
ガーデンアシストエーススプレー なす アブラムシ類
ガーデンアシストパームスプレー 野菜類 アブラムシ類
ガーデントップ なす アブラムシ類
キモンブロック液剤 野菜類(いちご、トマト、ミニトマトを除く) アブラムシ類
ギフパール なす(施設栽培) アブラムシ類
クミアイアグロスリン乳剤 なす アブラムシ類
クミアイアグロスリン水和剤 なす アブラムシ類
クミアイアドマイヤー1粒剤 なす アブラムシ類
クミアイアドマイヤーフロアブル なす アブラムシ類
クミアイアドマイヤー水和剤 なす アブラムシ類
クミアイアドマイヤー顆粒水和剤 なす アブラムシ類
クミアイコルト顆粒水和剤 なす アブラムシ類
クミアイスミチオン乳剤 なす アブラムシ類
クミアイトレボン乳剤 なす アブラムシ類
クミアイベリマークSC なす アブラムシ類
クミアイマブリック水和剤20 なす アブラムシ類
クリアオール水和剤 なす アブラムシ類
クルーザー48 なす アブラムシ類
コルト顆粒水和剤 なす アブラムシ類
コレトップ 野菜類(施設栽培) アブラムシ類
ゴッツA 野菜類(施設栽培) アブラムシ類
サイハロン乳剤 なす アブラムシ類
サイハロン水和剤 なす アブラムシ類
サンクリスタル乳剤 なす アブラムシ類
サンケイアディオン乳剤 なす アブラムシ類
サンケイスミチオン乳剤 なす アブラムシ類
サンケイスミロディー乳剤 なす アブラムシ類
サンケイダイアジノン乳剤40 なす(露地栽培) アブラムシ類
サンケイトレボン乳剤 なす アブラムシ類
サンケイハクサップ水和剤 なす アブラムシ類
サンケイマラソン乳剤 なす アブラムシ類
サンケイマラソン粉剤1.5 なす アブラムシ類
シーマージェット なす アブラムシ類
ジェイエース粒剤 なす アブラムシ類
ジェネレート粒剤 なす アブラムシ類
スカウトフロアブル なす アブラムシ類
スカウト乳剤 なす アブラムシ類
スターガードプラスAL なす アブラムシ類
スターガード粒剤 なす アブラムシ類
スタークル粒剤 なす アブラムシ類
スタークル顆粒水溶剤 なす アブラムシ類
スミフェート粒剤 なす アブラムシ類
スミロディー乳剤 なす アブラムシ類
ダントツ水溶剤 なす アブラムシ類
ダントツ粒剤 なす アブラムシ類
チェス水和剤 なす アブラムシ類
チェス粒剤 なす アブラムシ類
チェス顆粒水和剤 なす アブラムシ類
チャバラ 野菜類(施設栽培) アブラムシ類
テルスターフロアブル なす アブラムシ類
テルスター水和剤 なす アブラムシ類
テントップ 野菜類(施設栽培) アブラムシ類
デュポン プリロッソ粒剤 なす アブラムシ類
デュポン ベリマークSC なす アブラムシ類
トレボンEW なす アブラムシ類
トレボンMC なす アブラムシ類
トレボン乳剤 なす アブラムシ類
ナミトップ 野菜類(施設栽培) アブラムシ類
ナミトップ20 野菜類(施設栽培) アブラムシ類
ハクサップ水和剤 なす アブラムシ類
ハチハチフロアブル なす アブラムシ類
ハチハチ乳剤 なす アブラムシ類
バイデートL粒剤 なす アブラムシ類
バリアード顆粒水和剤 なす アブラムシ類
パイベニカVスプレー なす アブラムシ類
フーモン 野菜類 アブラムシ類
ブルースカイ粒剤 なす アブラムシ類
プリファード水和剤 野菜類(施設栽培) ワタアブラムシ
ベストガード水溶剤 なす アブラムシ類
ベストガード粒剤 なす アブラムシ類
ベニカRスプレー なす アブラムシ類
ベニカR乳剤 なす アブラムシ類
ベニカXファインスプレー なす アブラムシ類
ベニカベジフルVスプレー なす アブラムシ類
ベニカベジフルスプレー なす アブラムシ類
ベニカマイルドスプレー 野菜類 アブラムシ類
ベニカマイルド液剤 野菜類(いちご、トマト、ミニトマトを除く) アブラムシ類
ベニカ水溶剤 なす アブラムシ類
ベニカ液剤 なす アブラムシ類
ベニカ粒剤 なす アブラムシ類
ホクコーアディオン乳剤 なす アブラムシ類
ホクコーオルトラン粒剤 なす アブラムシ類
ホクコースタークル粒剤 なす アブラムシ類
ホクコースタークル顆粒水溶剤 なす アブラムシ類
ホクコースミチオン乳剤 なす アブラムシ類
ホクコーダイアジノン水和剤34 なす(露地栽培) アブラムシ類
ホクコーハクサップ水和剤 なす アブラムシ類
ホクコーマラソン乳剤 なす アブラムシ類
ホクコーロディー乳剤 なす アブラムシ類
ホクサンアディオン乳剤 なす アブラムシ類
ホクサンアドマイヤー顆粒水和剤 なす アブラムシ類
ホクサンスミチオン乳剤 なす アブラムシ類
ホクサンダイアジノン乳剤40 なす(露地栽培) アブラムシ類
ボタニガードES 野菜類 アブラムシ類
マイテミンスプレー なす アブラムシ類
マブリックジェット なす アブラムシ類
マブリック水和剤20 なす アブラムシ類
マラソン乳剤 なす アブラムシ類
マラソン粉剤3 なす アブラムシ類
マラバッサ乳剤 なす アブラムシ類
ミネクトデュオ粒剤 なす アブラムシ類
ムシラップ 野菜類 アブラムシ類
モストップジンRスプレー なす アブラムシ類
モスピランジェット なす アブラムシ類
モスピランワン粒剤 なす アブラムシ類
モスピラン・トップジンMスプレー なす アブラムシ類
モスピラン水溶剤 なす アブラムシ類
モスピラン液剤 なす アブラムシ類
モスピラン粒剤 なす アブラムシ類
モスピラン顆粒水溶剤 なす アブラムシ類
モベントフロアブル なす アブラムシ類
ロディー乳剤 なす アブラムシ類
一農スミチオン乳剤 なす アブラムシ類
一農ダイアジノン乳剤40 なす(露地栽培) アブラムシ類
一農マラソン乳剤 なす アブラムシ類
一農マラソン粉剤1.5 なす アブラムシ類
三井東圧アルバリン粒剤 なす アブラムシ類
三井東圧アルバリン顆粒水溶剤 なす アブラムシ類
三菱ハチハチ乳剤 なす アブラムシ類
丸和プリロッソ粒剤 なす アブラムシ類
住化スミチオン乳剤 なす アブラムシ類
住友化学ゴッツA 野菜類(施設栽培) アブラムシ類
協友アディオン乳剤 なす アブラムシ類
協友スミチオン乳剤 なす アブラムシ類
協友ダイアジノン水和剤34 なす(露地栽培) アブラムシ類
協友ダントツ水溶剤 なす アブラムシ類
協友ダントツ粒剤 なす アブラムシ類
協友ハクサップ水和剤 なす アブラムシ類
協友ベストガード水溶剤 なす アブラムシ類
協友ベストガード粒剤 なす アブラムシ類
協友マラソン乳剤50 なす アブラムシ類
家庭園芸用GFオルトラン粒剤 なす アブラムシ類
家庭園芸用アザミバスター水和剤 なす アブラムシ類
家庭園芸用オルトラン粒剤 なす アブラムシ類
家庭園芸用キングスミチオン乳剤 なす アブラムシ類
家庭園芸用キングマラソン乳剤50 なす アブラムシ類
家庭園芸用スミチオン乳剤 なす アブラムシ類
家庭園芸用ホクコーオルトラン粒剤 なす アブラムシ類
家庭園芸用マラソン乳剤 なす アブラムシ類
新富士シーマージェット なす アブラムシ類
新富士マブリックジェット なす アブラムシ類
新富士モスピランジェット なす アブラムシ類
日曹シーマージェット なす アブラムシ類
日曹スカウトフロアブル なす アブラムシ類
日曹スカウト乳剤 なす アブラムシ類
日曹ベリマークSC なす アブラムシ類
日曹マブリックジェット なす アブラムシ類
日本化薬ダイアジノン水和剤34 なす(露地栽培) アブラムシ類
日産スミチオン乳剤 なす アブラムシ類
日産テルスター水和剤 なす アブラムシ類
日産トレボン乳剤 なす アブラムシ類
日産プリロッソ粒剤 なす アブラムシ類
日産マラソン乳剤 なす アブラムシ類
日農アクテリック乳剤 なす アブラムシ類
日農アグロスリン乳剤 なす アブラムシ類
日農アグロスリン水和剤 なす アブラムシ類
日農アーデント水和剤 なす アブラムシ類
日農サイハロン水和剤 なす アブラムシ類
日農スミチオン乳剤 なす アブラムシ類
日農ダイアジノン乳剤40 なす(露地栽培) アブラムシ類
日農ダイアジノン水和剤34 なす(露地栽培) アブラムシ類
日農ハチハチフロアブル なす アブラムシ類
日農マラソン乳剤 なす アブラムシ類
日農モスピラン水溶剤 なす アブラムシ類
日農モスピラン粒剤 なす アブラムシ類
日農モスピラン顆粒水溶剤 なす アブラムシ類
理研スミチオン乳剤 なす アブラムシ類
石原コレパラリ 野菜類(施設栽培) アブラムシ類
粘着くん液剤 野菜類 アブラムシ類
野菜用ハンドスプレー なす アブラムシ類
金鳥アディオン乳剤 なす アブラムシ類
金鳥スミチオン乳剤 なす アブラムシ類
金鳥除虫菊乳剤3 なす アブラムシ類
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?