日本食品標準成分表を利用する
日本食品標準成分表のデータを利用するための関数を紹介していきます。
栄養素名を取得する
栄養素名の取得には、getNutrientNames()関数を用います。
## 栄養素名を取得する
日本食品標準成分表から栄養素名を取得します。
```{r}
nutrient_names = getNutrientNames()
head(nutrient_names)
```
nutrient_namesには、63の栄養素項目が付値されます。上記コードでは、下記の通り、最初の6つが表示されます。
> head(nutrient_names)
[1] "Refuse (%)"
[2] "Energy (kcal)"
[3] "Energy (kJ)"
[4] "Water (g)"
[5] "Protein, calculated from reference nitrogen (g)"
[6] "Protein, calculated as the sum of amino acid residues (g)"
食品群一覧を取得する
食品群一覧の取得には、getFoodGroups()関数を用います。
## 食品群一覧を取得する
日本食品標準成分表から食品群一覧を取得します。
```{r}
food_groups = getFoodGroups()
head(food_groups)
```
food_groupsには、18の食品群が付置され、上記コードで最初の6つが表示されます。
> head(food_groups)
[1] "1 Cereals" "2 Potatoes and starches" "3 Sugars and sweeteners"
[4] "4 Pulses" "5 Nuts and seeds" "6 Vegetables"
食品を検索する
食品を検索するには、findFood()関数を用います。
## 食品を検索する
日本食品標準成分表から食品を検索する。
```{r}
ret01 = findFood(
keyword = "oil",
food_group = "14 Fats and oils"
)
```
- keyword: 検索したい食品名を指定する引数で、部分一致で検索されます。
- food_group: 検索先の食品群を指定します。指定がない場合は、すべての食品群から検索します。
food_groupの指定には、トラブルを避けるため、下記のようにgetFoodGroups()関数を利用した方が良いでしょう。
```{r}
ret01 = findFood(
keyword = "oil",
food_group = getFoodGroups()[14]
)
```
> head(names(ret01))
[1] "food_group" "item_no" "index_no"
[4] "food_and_description" "Refuse (%)" "Energy (kcal)"
検索した結果は、データテーブル形式とデータフレーム形式になっています。食品名は、food_and_descriptionに格納されているようです。上記コードでは、格納されている変数のうち、最初の6つだけを表示していますが、「names(結果を格納した変数名)」で、全ての変数名が表示されます。
栄養素量の多い食品を抽出する
栄養素量の多い食品を抽出するには、subsetFoodRichIn()関数を用います。
## 栄養素量の多い食品を抽出する
栄養素量の多い食品を抽出する方法です。
```{r}
subset_drink = subsetFoodRichIn(
nutrient_name = 'Carbohydrate, total, calculated by difference (g)',
food_group = "16 Beverages",
n = 10
)
```
- nutrient_name: 栄養素名を指定します。
- food_group: 検索したい食品群を指定します。指定がなければ、すべての食品群から検索します。
- n: 取得したい食品の数を整数で指定します。
nutrient_nameの指定には、getNutrientNames()関数を、food_groupの指定には、getFoodGroups()関数を用いた方が無難に思えます。
```{r}
subset_drink = subsetFoodRichIn(
nutrient_name = getNutrientNames()[13],
food_group = getFoodGroups()[16],
n = 10
)
```
> subset_drink$food_and_description
[1] "Cocoa, chocolate milk powder"
[2] "Kale juice, powder"
[3] "Coffee, instant coffee, granules"
[4] "Fermented tea, black tea, tea"
[5] "Compound alcoholic beverage, \"Shiro0zake\" white Sake0like liquor made from steamed rice, rice koji and \"Shochu\""
[6] "Green tea, \"Sencha\" common grade tea, tea"
[7] "Green tea, \"Gyokuro\" high grade tea made from shade0grown leaves, tea"
[8] "Compound alcoholic beverage, \"Mirin\" sweet liquor made from rice, rice koji and Shochu or distilled alcohol, regular"
[9] "Cocoa, pure powder"
[10] "\"Kobu0cha\" kombu powder for drink"
> subset_drink$`Carbohydrate, total, calculated by difference (g)`
[1] 80.4 70.2 56.5 51.7 48.1 47.7 43.9 43.2 42.4 42.3
取得したものは、やはりデータフレーム(データテーブル)形式なので、上記のように呼び出すことができます。 ただし、変数名に空白が含まれているものは、「`(バッククオート)」で変数名を囲む必要があります。 バッククオートは普通のキーボードであれば、「Shift + @」で入力可能です。
表示したい変数だけ抜き出す場合は、以下のようなやり方が一般的です。
```{r}
col_list = c('food_and_description', 'Carbohydrate, total, calculated by difference (g)')
subset_drink_selected = subset_drink[, col_list]
```