[解決済み] Rデータフレームで、特定の条件を満たす最初の行を選択するにはどうすればよいですか?
2022-03-10 02:08:55
質問
Rデータフレームで、ある条件を満たす最初の行を選択するにはどうすればよいですか?
以下はその状況です。
5つの列を持つデータフレームがあります。
"pixel", "year","propvar", "component", "cumsum."
の組み合わせは1,225通りあります。
pixel
と
year
というのも、このデータは25年ごとに49の地理的ピクセルの年次時系列から計算されたものだからである。各ピクセル年において、私は
propvar
ある画素年の時系列に対して高速フーリエ変換のある成分で説明される全分散の割合である。次に
cumsum
の累積和である。
propvar
を、1ピクセル年内の各周波数成分について計算した。そのため
component
列は、フーリエ級数成分(プラス1)のインデックスを与えるだけで、そこから
propvar
が計算されました。
分散の99%以上を説明するために必要な成分の数を決定したい。これを行う1つの方法は、各ピクセル年での最初の行を見つけることだと思います。
cumsum
0.99とし、3列のデータフレームを作成します。
pixel
,
year
および
numbercomps
ここで
numbercomps
は、分散の99%以上を説明するために必要な、任意のピクセル年内の成分の数です。Rでこれを行う方法がわかりません。どなたか解決策をお持ちですか?
どのように解決するのですか?
もちろん、こんな感じでいいと思います。
# CREATE A REPRODUCIBLE EXAMPLE!
df <- data.frame(year = c("2001", "2003", "2001", "2003", "2003"),
pixel = c("a", "b", "a", "b", "a"),
cumsum = c(99, 99, 98, 99, 99),
numbercomps=1:5)
df
# year pixel cumsum numbercomps
# 1 2001 a 99 1
# 2 2003 b 99 2
# 3 2001 a 98 3
# 4 2003 b 99 4
# 5 2003 a 99 5
# EXTRACT THE SUBSET YOU'D LIKE.
res <- subset(df, cumsum>=99)
res <- subset(res,
subset = !duplicated(res[c("year", "pixel")]),
select = c("pixel", "year", "numbercomps"))
# pixel year numbercomps
# 1 a 2001 1
# 2 b 2003 2
# 5 a 2003 5
EDIT
また、ご興味のある方は
data.table
は、こんなのもあります。
library(data.table)
dt <- data.table(df, key="pixel, year")
dt[cumsum>=99, .SD[1], by=key(dt)]
関連
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】rbind(deparse.level, ...)でエラー:引数の列の数がRにマッチしていない
-
[解決済み] テスト
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数を必要とする」というエラーが発生する?
-
[解決済み] How to make the first option of <select> selected with jQuery
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み] データフレーム内の列を名前でドロップする方法
最新
-
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:関数に有限な'ylim'値が必要
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み】lis[[i]]のエラー:1つ未満の要素を選択しようとした場合
-
[解決済み】Rで結果の行数がベクトル長(arg 2)の倍数でない件
-
[解決済み] テスト
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?
-
[解決済み】seq_alongはうまくいくが、seqが意図しない結果を生む例とは?
-
[解決済み】起動時にパーをデフォルト値にリセットする方法