前提・実現したいこと
いつも勉強させていただいております。現在、多重代入法によって欠測処理を行っております。20個のデータセット(csv形式)を作成するところまではできましたが、統合する段階で、データセットの加算平均を求めるところで苦戦しております。
複数のcsv形式のデータセットの加算平均を求めるやり方をご教示いただけますと幸いに存じます。
使用しているソフトウェアはRです。
過去の質問と回答を見ても、うまくいかなかったため、質問させていただきました。お手数をおかけし申し訳ございませんが、どうぞよろしくお願い申し上げます。
> 統合する段階で、データセットの加算平均を求めるところで苦戦しております。
具体的なデータや現在作成しているコードを提示できませんか?
早速のお返事、ありがとうございました。申し訳ございませんが、いわゆるビッグデータ解析を行っており、データを外部に持ち出すことができません。
コードについては、複数の参考書を参照しましたが、いずれも、1つのデータセット内での演算の解説にとどまっており、とっかかりすら、つかめない状況です。
> データを外部に持ち出すことができません。
検証のためのサンプルデータを提示ください。
> コードについては、複数の参考書を参照しましたが、いずれも、1つのデータセット内での演算の解説にとどまっており、とっかかりすら、つかめない状況です。
今出来ているところまでのコードを提示できませんか?サンプルデータで良いのでアウトプットイメージがあると回答しやすくなるかと思います。
複数のcsvファイルの処理が分からないという質問であれば、1つのファイルでの処理は書けるということですよね?そのコードを提示してください。
「加算平均」とは信号処理の加算平均のことでしょうか?
ご質問ありがとうございます。
例えば、5個のデータフレーム(A、B、C、D、E)があり、例えば、データフレームAのi行j列の値を、Aijと記載する場合、
(Aij+Bij+Cij+Dij+Eij)/5という処理を、すべてのセルに対して行ったデータフレームを作成するということです。
その「5つのデータフレーム」は出来ているんですよね。だったら、その式をそのままRのスクリプトに組み込めばすむことですが、どこが理解できないのでしょうか。
お返事ありがとうございます。
その式とは、以下の式のことでしょうか。
(Aij+Bij+Cij+Dij+Eij)/5 (式1)
セル数が各データあたり、数十万程度あり、このすべてのセルに行いたいと考えているため、手作業で入力することはできず、
しかし、式(1)を、Rのスクリプトにうまく組み込むことができないということです。
> しかし、式(1)を、Rのスクリプトにうまく組み込むことができないということです。
上手くいっていなくても良いのでトライしたコードを質問に追記してください。
>上手くいっていなくても良いのでトライしたコードを質問に追記してください。
昨日、お返事したように、組み込むことができないというのは、取っ掛かりすらつかめていない状況であり、そもそもトライできていないということです。昨日の以下のお返事をご参照ください。
2021/07/29 21:08
コードについては、複数の参考書を参照しましたが、いずれも、1つのデータセット内での演算の解説にとどまっており、とっかかりすら、つかめない状況です。
「うまく組み込むことができない」との表現から「コードを書いたが思い通りの結果が得られなかった」あるいは「エラーが出て解決できない」のだと解釈していました。しかし実際にはコードを1行も書かれていなかったということでしたか。
「苦戦しております。」や「うまくいかなかったため」との表現は誤解を与えますので変えられた方が良いかと思います。
紛らわしい表現で失礼しました。
「苦戦しております」と「うまくいかなかったため」というのは、下記のような過去のteratailのディスカッションを見て、
https://teratail.com/questions/174435
これを応用できないかと考えたということです。
普段sqlを使っていないためか、私には使いこなすことができず、考えただけで、スクリプトにまとめるところまではいきませんでしたが。
リンク先を見ましたがそちらのコードをそのまま試してみれば良いのではないでしょうか?
まずは小さなサンプルデータで動作確認すれば良いでしょう。
今の質問の状態ではサンプルデータもなくトライしたコードもなく、回答は付きにくいかと思われます。
>リンク先を見ましたがそちらのコードをそのまま試してみれば良いのではないでしょうか?
どうも私の質問とmeg_さんの回答がかみ合っていないようですが、
それがうまくいかなかったため、ご質問させていただいたというのは、先に回答した通りです。
「考えただけで」ということでしたが、リンク先のコードは実行してみたんですか?
「それがうまくいかなかったため」というのは、エラーが発生したのですか?結果が思ったのと違ったのですか?
具体的には何をしてどうなったんでしょうか?
>具体的には何をしてどうなったんでしょうか?
例えば以下のような過去の私の回答を再度ご参照ください。
--------------
普段sqlを使っていないためか、私には使いこなすことができず、考えただけで、スクリプトにまとめるところまではいきませんでしたが。
> 考えただけで
何故
> 私には使いこなすことができず
と結論付けられたのか私には分かりません。
他の方からの回答をお待ちください。
失礼いたしました。
一応、回答させていただくと、
>何故
>> 私には使いこなすことができず
>と結論付けられたのか私には分かりません。
「使えなかった」という結果を以て、「使いこなせなかった」と判断したということです。
「何をして」という、実際の解析にいたるところまでいかなかったということです。
>他の方からの回答をお待ちください。
了解いたしました。
これでは答えようがありません。
まず、質問欄に一つ補足してください。
forループについて調べてみましたか?
>これでは答えようがありません。
どうすれば、回答いただけるか、書いていただけると建設的な議論ができるかと思います。
>まず、質問欄に一つ補足してください。
何について補足すればよいでしょうか。
>forループについて調べてみましたか?
これが反復処理を行うために使われることは理解しています。
しかし、今回は、異なるCSVファイルのそれぞれのセルを足し合わせるためには、どのようなスクリプトを書けばよいか分からず、反復処理までたどり着けていませんでした。
いや、だから「反復処理」で各データセットにアクセスして、データを集計用のオブジェクトにコピーするなり加算するなりしていけばいいじゃないですか。反復処理が「理解」できているなら、たどり着くも何も、できるはずです。
それがわからんということは、もう基本の基本が理解できていないということです。Rの使い方をゼロから教えてほしいと言ってるに等しく、teratailでの対応範囲を超えています。
>「反復処理」で各データセットにアクセスして、データを集計用のオブジェクトにコピーするなり加算するなりしていけばいい
ありがとうございました。この1文を読んで、疑問が氷解しました。
よろしければ、ベストアンサーを進呈させていただきますので、回答欄に転記ください。
回答1件
あなたの回答
tips
プレビュー