[解決済み] R - 関数内のデータ・フレームをサブセットするときに、未定義の列が選択されます。
2022-02-19 17:24:35
質問事項
肺炎という列と、州や病院名などの列を持つ、quot;outcome;というデータフレームを持っています。
コマンドラインで実行すると
outcome <- read.csv("Assigment3/outcome-of-care-measures.csv", colClasses = "character")
temp <- subset(outcome, State =="NY", select=c(Hospital.Name, Pneumonia)
を実行すると、病院名と肺炎の2つのカラムを持つ一時的なデータフレームが作成されます。
しかし、同じ命令を含む関数を作成したところ
state は state カラムの中の値で、outcome1 は単なるカラム名です。
best <- function(state, outcome1) {
outcome <- read.csv("Assigment3/outcome-of-care-measures.csv", colClasses = "character")
temp <- subset(outcome, State ==state, select=c(Hospital.Name, outcome1))
}
で、その関数を呼び出す。
best("NY","Pneumonia")
エラーが出ます。
Error in [.data.frame`(x, r, vars, drop = drop) : 未定義の列が選択されました
に問題があるのは分かっているのですが
outcome1
をハードコードすると
outcome1
を引数として渡す代わりに、上記の関数で渡すと、関数は期待通りに動作します。
どのように解決するのですか?
が必要だと思います。
get
の周りに
outcome1
というのは、引数としてオブジェクトではなく文字列を渡しているからです。この例のデータでは
outcome <- data.frame(Pneumonia = sample(0:1, size = 5, replace = TRUE),
State = c("NY", "NY", "NY", "CA", "CA"),
Hospital.Name = LETTERS[1:5]
)
そして、この修正された関数。
best <- function(df_, state_, var_) {
subset(df_, State == state_, select = c(Hospital.Name, get(var_)))
}
これで、多かれ少なかれ、以前と同じように呼び出すことができます。
> best(df_ = outcome, state_ = "NY", var_ = "Pneumonia")
Hospital.Name Pneumonia
1 A 0
2 B 1
3 C 0
関連
-
[解決済み] lmer エラー: グループ化係数は観測数未満でなければならない
-
[解決済み】「Error in stripchart.default(x1, ...) : invalid plotting method」エラーを回避する方法は?
-
[解決済み】Rの整数オーバーフローとは何ですか、そしてどのように起こるのですか?
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み】データフレームから特定の列を抽出する
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み] テスト
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み】match.fun(FUN)でのエラーについて)
-
[解決済み】r Error dim(X) must have a positive length?
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数を必要とする」というエラーが発生する?