Boxplot - 変数で列名にアクセスする

列の名前を含む変数を使用して列にアクセスするにはどうすればよいですか?

3つの列を持つデータフレームDFがあるとします。 Var1 Var2 Var3 : Var3は数値データを含み、Var1およびVar2にはいくつかの要因が含まれています。

列の名前を含む一時変数を使用して2つのボックスプロットを生成します。

temp<-"Var3"
boxplot(DF[temp]) #(<--that works).

Var2の各要素のボックスプロットを得るために同じメソッドを使用すると、次のようになりません。

boxplot(DF[temp]~DF$Var2) #(<-- does not work).

これをどうやって動かすことができますか?

注釈: 「Var3」という名前を直接使用すると、動作し、いくつかのボックスプロットが表示されます。

boxplot(DF$Var3~DF$Var2).

3

3 答え

単一のかっこの代わりに二重のかっこを使ってみてください:

tmp1 <- 'Sepal.Width'
tmp2 <- 'Species'
boxplot( iris[[tmp1]] ~ iris[[tmp2]] )
6
追加された
この提案をありがとう。私が試してみる前に[、[tmp1]]は動作しませんでした。あなたのソリューションはさらに簡単に実行でき、うまく機能します。
追加された 著者 John,

あなたは単にこれを行うことができます。 with ステートメントは boxplotDF 内の変数を検索し、 get ステートメントは > tmp

with(DF, boxplot(get(tmp) ~ Var2))

ここに具体的な例があります

tmp <- 'wt'
with(mtcars, boxplot(get(tmp) ~ cyl))

enter image description here

1
追加された
親愛なるラムナート、ありがとうございました!特に、コード内のさまざまな要素が何をしているのかを詳細に説明することが好きでした。
追加された 著者 John,

paste を使用して数式を作成し、boxplot呼び出しの式に変換することができます。

boxplot(as.formula(paste(temp,"Var2",sep="~")),DF)
1
追加された
タスクを実行するためのさまざまなオプションがあるようです。私はあなたのソリューションを試して、それは正常に動作します。非常に興味深い方法。
追加された 著者 John,