みなさん,こんにちは。
シンノユウキ(shinno1993)です。
以前の記事で「FoodCompotitionInJapan」というR言語で日本の食品成分表を扱えるパッケージを紹介しました.
その時点では,食品を検索したりする機能はあったものの,食品リストから栄養価を計算したりといった機能はまだありませんでした.今回でそれを追加しましたのでご紹介します.
パッケージの使い方
前回の記事を重複しますが再掲します.
パッケージは,Githubに公開しています.
これをダウンロードし,使っていきます.
devtoolsというライブラリを使用しすると便利です.以下のコードでダウンロード・インストールをします.
library(devtools) install_github("yuki-shinno/FoodCompositionJapan", force=TRUE) library(FoodCompositionJapan)
その他,基本的な使い方などは前回の記事をご覧ください.
栄養価を計算する前に.計算したい食事のデータ形式について
栄養価計算を行うためには,計算したい食事を構成する食品の食品番号と重量が必要になります.そして,これをデータフレームで作成する必要があります.
1日の場合
列名をfood_number
とweight
とする食品のデータフレームが必要です.以下のような形式になります:
このようなデータフレームは,以下の様なコードで作成します:
food_number = c("01001", "02001", "03001", "04001", "05001", "06001", "07001", "08001", "09001") weight = c(10, 20, 30, 40, 50, 60, 70, 80, 90) sample_meal_day1 <- data.frame(food_number = food_number, weight = weight)
これでsample_meal_day1
に上記のようなデータフレームが代入されます.
複数日の場合
複数日の食事の栄養価計算を行いたい場合,先に紹介した1日の場合の食事を日数分用意し,それをリストにします.以下のようになります:
これを作成する場合,以下の様なコードになります:
food_number = c("01001", "02001", "03001", "04001", "05001", "06001", "07001", "08001", "09001") weight = c(10, 20, 30, 40, 50, 60, 70, 80, 90) sample_meal_day1 <- data.frame(food_number = food_number, weight = weight) food_number = c("10001", "11001", "12001", "13001", "14001", "15001", "16001", "17001", "18001") weight = c(100, 110, 122, 130, 140, 150, 160, 170, 180) sample_meal_day2 <- data.frame(food_number = food_number, weight = weight) sample_meal_multiple <- list(sample_meal_day1, sample_meal_day2)
sample_meal_multiple
には,sample_meal_day1
,sample_meal_day2
の2日分の食事がリスト形式で含まれます.複数日の場合はこのようにします.
栄養価を計算する関数
calcNutrient():1日の食事の栄養価を計算する
1日分の食事の栄養価を計算する関数です.以下の様に使用します:
ret <- calcNutrient(food_list = sample_meal_day1)
- food_list:food_numberとweightを列名とする食品のデータフレームを指定してください.
sample_meal_day1
がサンプルの食事として含まれますので,少し試してみたいという方はこちらを利用してください.
以下のような結果が返ってきます:
calcNutrientMultipledays():複数日の食事の栄養価の平均を計算する
複数日の食事の平均を計算する関数です.以下のように使用します:
ret <- calcNutrientMultipledays(food_list_multiple = sample_meal_multiple)
- food_list_multiple:food_numberとweightを列名とする食品のデータフレームのリストを指定してください.
sample_meal_multiple
がサンプルとして含まれていますので,少し試してみたいという方はこちらを利用してください.
以下のような結果が返ってきます:
形式は1日のものと同じですが,こちらは複数日の平均が返ってきています.
もし,個々について栄養価計算された結果が欲しい場合は,calcNutrient()とsapply()を使用してください:
ret <- sapply( X = sample_meal_multiple, FUN = calcNutrient )
これで,それぞれの食事について,個別の栄養価計算が行えます.
まとめ
今回はR言語で日本食品標準成分表が扱えるパッケージ:「FoodCompotitionInJapan」で,食品リストから栄養価を計算する機能を紹介しました.次回は,GUIなどから食品のリストを作成する方法を紹介したいと思います.
連載目次
- R言語で日本食品標準成分表を使えるパッケージを作成しました
- 【機能追加】R言語 × 日本食品標準成分表に栄養計算機能を追加しました現在のページ
- 【機能追加】R言語 × 日本食品標準成分表に食事データ作成に便利な関数を追加しました