私は文字列( "b")を含む変数(x)を持っています。この文字列は、データフレーム(ABC)に含まれる変数の名前を示します。関数get()を使用してデータフレーム内の変数の値を取得しようとすると、「オブジェクトが見つかりません」というエラーが発生します。データフレームでのget()の使用
a <- 1
b <- 2
c <- 3
ABC <- data.frame(a,b,c)
x <- "b"
これは動作します:
get(x)
[1] 2
を、これはエラーを与える一方で:
get(paste("ABC$",x,sep=""))
Error in get(paste("ABC$", x, sep = "")) : object 'ABC$b' not foundhere
これは動作しますが:
ABC$b
[1] 2
どのように私が見て変数xを使用することができます変数bの値は?
ありがとうございます!あなたは物事があまりにも複雑になっている
> get(x, ABC)
[1] 2
または
> ABC[[x]]
[1] 2
うわー、私はとても馬鹿だった...ありがとう!しかし、少なくとも私は言い訳をしています:何らかの理由で、私の変数x(read.tableを使用している外部ソースから来た)はモード数値を持っていました。もちろん、これにより "オブジェクトが見つかりませんでした"というエラーが発生します。 ABC [[as.character(x)]]を使用すると、すべてが問題ありません。再度、感謝します! – Kilian
さらに、xがデータフレームの有効な名前を格納しているかどうかを確認したい場合、テストは "x%in%names(ABC)"です – Spacedman