[解決済み] R data.tableの計算で前の行の値を使用する
2023-04-15 01:30:13
質問
data.tableに、ある列の現在値と別の列の前値から計算される新しい列を作成したいです。 前の行にアクセスすることは可能ですか?
例
> DT <- data.table(A=1:5, B=1:5*10, C=1:5*100)
> DT
A B C
1: 1 10 100
2: 2 20 200
3: 3 30 300
4: 4 40 400
5: 5 50 500
> DT[, D := C + BPreviousRow] # What is the correct code here?
正解は
> DT
A B C D
1: 1 10 100 NA
2: 2 20 200 210
3: 3 30 300 320
4: 4 40 400 430
5: 5 50 500 540
どのように解決するのですか?
とは
shift()
で実装されている
v1.9.6
で実装されたもので、これは非常に簡単です。
DT[ , D := C + shift(B, 1L, type="lag")]
# or equivalently, in this case,
DT[ , D := C + shift(B)]
から ニュース :
<ブロッククオート-
新機能
shift()
は、高速なlead/lag
の ベクトル , リスト , data.frames または データテーブル . これはtype
引数は lag" (デフォルト) または "lead" . と共に使用すると非常に便利です。:=
またはset()
. 例えばDT[, (cols) := shift(.SD, 1L), by=id]
. をご覧ください。?shift
をご覧ください。
過去の回答は履歴をご覧ください。
関連
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] リストやデータフレームの要素にアクセスするためのブラケット[ ]とダブルブラケット[[ ]]の違いについて
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
R plot.new() のエラー : 図形の余白が大きすぎる
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] データフレーム内のランダムな行をサンプリングする
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】ifelse()でDateオブジェクトがnumericオブジェクトにならないようにする方法
-
[解決済み] 2つの単語の最初の文字を大文字にします。