問題タブ [cumsum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R 累積合計を適用
私は最近、正しい方向に向かうきっかけとなった質問をしましたが、未解決の問題がいくつか残っていました。
最後の行 (RBH) に最終的な成長測定値がリストされた data.frame があります。各サンプルは個別の列にあり、観測終了年 (2010、2011、または 2012) が異なります。基本的に、最終的な総成長測定値 (RBH 値) を測定値で昨年に適用し、現在の成長測定値から前年の年間成長測定値を差し引いて、サンプルが毎年どのくらいの大きさであったかを再現する必要があります。
前の質問で与えられた解決策により、累積合計を作成して各測定値から差し引くことができますが、NA または NaN 値を適切に処理しません。特定のサンプルに次の測定値がある場合、出力は次のようになります。
サンプル測定:
意図した出力:
別のユーザーから提案された、私が使用しているコードは次のとおりです。
これは累積合計に対して機能しますが、NA 値は扱いません。どんな提案でも大歓迎です。
r - R: 累積和関数を適用し、データ ギャップを NA で埋めてプロットする
このようなデータフレームがあり、行 VALUE の累積合計を計算しようとしています。入力ファイルは、https ://dl.dropboxusercontent.com/u/16277659/input.csv にもあります。
私が目指している最終製品は、各サンプルのプロットです。x 軸には SURVEY_YEAR がプロットされ、y 軸には後で計算された VALUE の累積合計 CUMSUM がプロットされます。データを整理するためのこれまでの私のコード:
これにより、行 VALUE の累積合計の計算の開始点である次のデータフレームが生成されます。
今の問題は、各年の行 VALUE の累積合計を計算したいということです。ご覧のとおり、特定の年の間にギャップがあります (たとえば、SAMPLE1 では 1890 年から 1911 年まで、SAMPLE2 では 1998 年から 2005 年まで)、プロット タイプでプロットできるように、その間の各年のギャップを NA 値で埋めたいと思います。 ='b' (点と線) であり、異なるギャップが接続されないようにします。互いの後に複数の NA 値がある場合、CUMSUM 行で最後の NA 値を前の最後の数値に置き換える必要があることが重要です。
通常、REFERENCE_YEAR と SURVEY_YEAR の差は 1 です (たとえば、SAMPLE1 の最初の例では 1880 年から 1881 年まで)、場合によっては、REFERENCE_YEAR と SURVEY_YEAR の間にさまざまな期間があります (たとえば、SAMPLE1 では 1911 年から1913 年および 2009 年から 2013 年までの SAMPLE2)。この場合、累積合計の関数は 1 回だけ適用され、指定された期間は値が同じままである必要があります (プロットでは、接続された直線になります)。
すべてを詳細に説明するのは難しいですが、結果がどのように見えるかの例を提供すると、おそらく簡単になります。
このかなり複雑なケースのヘルプをいただければ幸いです。ありがとうございました!
r - R: NA でデータ ギャップを埋め、cumsum 関数を適用する
ここで尋ねられた質問 ( R: Applyingcumulative sum function and filling data gaps with NA for plotting ) を少し分解して、より小さなサンプルを投稿するように依頼されました。これが私のサンプルデータです: https://dl.dropboxusercontent.com/u/16277659/inputdata.csv
列 VALUE の累積合計を計算し、その間の年のデータ ギャップを NA 値で埋めたいと思います (さらに処理するために他の列が必要なため、データの構造は同じである必要があります)。
データのギャップを埋める場合、SAMPLE1 のように NA を埋める必要があります。CUMSUM 列に複数の NA を入力する場合は、NA の後の値の位置に注意してください (たとえば、最後の CUMSUM 値は、VALUE の最後の NA に加えて入力する必要があります (プロットの理由で使用されます)。
例外として、REFERENCE_YEAR と SURVEY_YEAR の間の期間が 1 年を超える場合は、SAMPLE2 のように 1992 年から 1994 年までの期間の値を列に書き込む必要があります。
これは単なるサンプル データセットです。実際のデータセットは、いくつかの列と約 40000 行で構成されています。BaseRのソリューションが最適です。各 SAMPLE の最初の行で REFERENCE_YEAR と SURVEY_YEAR が等しいのは、各グループのゼロ列を書き込むために使用するコードの結果です。
-------------------------------------------------- ----------------------------------------------
r - R は cumsum in-place のような操作を実行できますか?
Pythonでは、これを行うことができます:
ここで行ったことは、 の内容をa
その cumsum に置き換えることでした。前後のアドレスは同じです。
それでは、R で試してみましょう。
問題は、R で既に割り当てられているメモリを計算の結果で上書きするにはどうすればよいかということです。R と Rcpp (C++ でコードを記述し、R から呼び出すことで不要な割り当てを避けることができます) でベクトル演算を行うと、この種のものが欠如しているため、パフォーマンスに大きな違いが生じるようです。
24 個の物理コアと 128 GB の RAM を搭載した Ubuntu Linux 10.04 で R 3.1.1 を使用しています。
r - R、dplyr: n_distinct の累積バージョン
次のようなデータフレームがあります。列順に並んでいますtime
。
入力 -
これまでのところ、つまり各グループのその時点まで、個別の値var2
を計算しない別の変数を作成したいと思います。これは、 を使用した場合に得られるものとは少し異なります。var1
time
grp
n_distinct
期待される出力 -
これについて言う関数を作成し、cum_n_distinct
それを次のように使用したい-
r - R 合計が値を超えるまで、グループごとに上位の値を取得する方法
私はこのようなデータフレームを持っています
グループごとに、合計が目標値を超える/満たすまで、上位の値の行を取得したい
新しいグループを 4 つのデータ フレームとして出力します。
大きいものから順に並べてみました
望ましい出力は
これを行う最善の方法は何ですか?
ありがとう。
python - 逆列順で行ごとにPandas Dataframe cumsum?
これを達成するためのよりエレガントな方法はありますか? さまざまなスタックオーバーフローの回答に基づく私の現在のソリューションは次のとおりです
出力
私は自分のデータでこれを頻繁に実行する必要があり(サイズもはるかに大きくなります)、これを達成するための短い/より良い方法を見つけようとします。
ありがとう
r - Rでベクトルから一連の範囲を作成する方法は?
長さを指定する数値のベクトルがあるとしましょう。
次に、cumsum を実行して範囲を取得します。
1 から始まる範囲のペアを生成するために、それぞれをペアにする方法を教えてください。
文字ベクトルとして推奨: