2016-12-30 10 views
1

データフレームがあります。動的に決定された別の列の値に基づいて列から値を選択する

df <- data.frame(A = 1:10, B = 101:110, C = 201:210) 

そして、私は次の基準を使用して、列Aの値を見つけたい、

df$A[df$B > 101 & df$B < 105] 
[1] 2 3 4 

しかし、私は、次のようなアプローチを使用してプログラム

var <- noquote(paste0("df$", names(df[2]))) 
df$A[var > 101 & var < 105] 
を条件を指定できるようにしたいです

しかし、私が得るのはinteger(0)です。

明らかに何かが正しくありません。誰でも助けてくれますか?ありがとうございました。

+0

を使うのか? – akrun

+0

akrun、私はそのデータフレーム内の特定の列を循環させ、その基準を満たす列Aから値を抽出するつもりです。 – useryk

+1

あなたが 'var < - names(df)[2];を参照している場合、一つのオプションは' get'です。 #1013&get(var)&lt; 105&gt; $ #[1] 2 3 4 ' – akrun

答えて

1

我々はそれを必要とする場合は、そのアプローチを通じて行きたいなぜ、その後、eval(parse

df$A[eval(parse(text=var))> 101 & eval(parse(text=var)) < 105] 
#[1] 2 3 4 
関連する問題