[解決済み] R: "where "を使用して、リストから要素をマッチングして行を選択する
2022-03-05 06:50:58
質問
Rの"where"関数をループ内で使用して、一致する要素に基づいて2つのデータセットから特定の行を選び出し、その2つの散布図を作成しようとしています。以下のコードサンプルは、2つのデータフレームの行の名前とループを提供しています。それぞれのデータフレームには、"mycounties"にリストされているよりも多くの郡が含まれています。
以前にもこのようなループで "where" 関数を使用したことがありますが、今回は "where" が存在しないというエラーメッセージがRから返されました? 私は"where"が存在することを知っています! 私の質問は、どうすればRがこの"where"構造を認識するか、またはプロットしたい行を選択する良い方法があるかということです?
> names(dts)
[1] "county" "Freq125" "Freq126" "Freq127" "Freq128" "Freq129" "Freq130" "Freq131" "Freq132" "Freq133" "Freq134" "Freq135" "Freq136" "Freq137"
[15] "Freq138" "Freq139" "Freq140" "Freq141" "Freq142" "Freq143" "Freq144" "Freq145" "Freq146" "Freq147" "Freq148" "Freq149" "Freq150" "Freq151"
[29] "Freq152" "Freq153" "Freq154" "Freq155" "Freq156" "Freq157" "Freq158" "Freq159" "Freq160" "Freq161" "Freq162" "Freq163" "Freq164" "Freq165"
[43] "Freq166" "Freq167" "Freq168" "Freq169" "Freq170" "Freq171"
> names(pm)
[1] "county" "pm125m" "pm126m" "pm127m" "pm128m" "pm129m" "pm130m" "pm131m" "pm132m" "pm133m" "pm134m" "pm135m" "pm136m" "pm137m" "pm138m"
[16] "pm139m" "pm140m" "pm141m" "pm142m" "pm143m" "pm144m" "pm145m" "pm146m" "pm147m" "pm148m" "pm149m" "pm150m" "pm151m" "pm152m" "pm153m"
[31] "pm154m" "pm155m" "pm156m" "pm157m" "pm158m" "pm159m" "pm160m" "pm161m" "pm162m" "pm163m" "pm164m" "pm165m" "pm166m" "pm167m" "pm168m"
[46] "pm169m" "pm170m" "pm171m"
>
> mycounties = c("beaufort", "bertie", "bladen", "camden", "carteret", "chowan", "craven",
+ "cumberland", "currituck", "dare", "duplin", "gates", "greene", "harnett", "hyde",
+ "jones", "lenoir", "new hanover", "onslow", "pamlico", "pasquotank", "pender", "perquimans", "pitt", "robeson", "sampson", "tyrrell", "washington")
>
> LOOP
> for (i in 1:length(mycounties)) {
+ x = pm[where(pm$county == mycounties[i]),2:48]
+ y = dt[where(dts$county == mycounties[i]),2:48 ]
+ plot( x, y, main=paste("HYSPLIT & ED Visits", counties[i], sep=""),
+ xlab="HYSPLIT", ylab="ED Visits", pch=19)
+ }
Error in `[.data.frame`(pm, where(pm$county == mycounties[i]), 2:48) :
could not find function "where"
解決方法は?
ジェフやコメントで言われているように、where関数がありません。
which
はR版です。
ただし、この例では
which
を全く使用しません。
x <- pm[pm$county == mycounties[i], 2:48]
y <- dt[dt$county == mycounties[i], 2:48]
また、あなたの例では
if
ステートメントを使用します。
if (mat$county[i] %in% dt5$county)) {
mat[i,2:58] = dt5[dt5$county == mat$county[i], 2:58]
}
これは、あなたの
dt5$county
に一致する県は1つだけです。
mat$county[i]
. そうでない場合は、エラーになります。
関連
-
[解決済み】添え字付き代入でNAを使用することはできません
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】ggplotのエラー。関数型オブジェクトのスケールを自動的に選択する方法がわかりません。
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】dplyr: "Error in n(): 関数は直接呼ばれるべきではありません"
-
[解決済み] 一般的なリストを繰り返しながら、そのリストから要素を削除するには?
-
[解決済み】リストから要素を削除するにはどうすればいいですか?
-
[解決済み] 条件を満たす行列の行を選択する
-
[解決済み] data.frame の行をリストにする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み】二項演算子への非数値引数【非公開
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み] [Solved] read.csv warning 'EOF within quoted string' prevents complete reading of file.
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み】 .subset2(x, i, exact = exact)のエラー:Rの添え字が範囲外である。
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数を必要とする」というエラーが発生する?
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?