2012-01-22 49 views
0

RODBCパッケージを使用してSQLクエリからデータフレームを作成しました。私は別の単一の列のデータフレームを持っています。各行には、主なデータセット内の、ある要素に変換したい列の名前が含まれています。R - データフレーム内の変数を係数に変換する

構文は明らかに間違っていますが、これは論理です。

for(c in 1:length(df.ToFactor$IV)-0) { 

VarToFactor<- as.character(df.ToFactor$IV[c]) 
df.dataset[VarToFactor]<-factor(df.HRV[VarToFactor]) 

} 

助けてください。

答えて

4

整数のベクトルからゼロを減算することはあまり意味がありません。私は、forループの中で考えるが、私も、それはプログラミングで安全ですという理由だけで、「[[」操作と同等に「$」の動作を変更

for(c in 1:length(df.ToFactor$IV)) { 

VarToFactor<- as.character(df.ToFactor[["IV"]][c]) 
df.dataset[[VarToFactor]]<-factor(df.HRV[[VarToFactor]]) 
     } 

:私はあなたが[[<var-name>]]構成を採用するwnatも疑いますインタラクティブなセッションでは問題は発生しません。 "[["と "["についての詳細が記載されている?Extractページに加えて、Patrick Burnsの "R Inferno"で役に立つ情報を見つけることができます。この特定の領域はp 52でカバーされています。

+0

ありがとう、これはうまくいきます。 [[varname]]操作について私が読むことができるリファレンスはありますか?明らかに、私はそれをよりよく理解する必要があります。 – user1162769

+1

?Extract(あなたにコンソールで入力しました)。そのページを勉強するには少しの作業が必要ですが、私は認めます。キーポイントは、 "$"演算子が渡された変数名を評価しないことを認識することです。 "[["は引用符で囲まれていないときに実行します。したがって、$ bは[["b"]]と同じですが、 '$'はx = "b"の場合に[[x]]が行うことを決して行うことはできません。 –

+0

簡単にするために、名前の繰り返しを行うことができます: 'for(文字列の[VarToFactor] ])} ' – Marek

関連する問題