2016-04-30 15 views
0

を参照してください。私は私が欲しいもの割り当てる文字列は

df<-list(ls(pattern = "stock")) 
> df 
[[1]] 
[1] "AAPLstock" "FBstock" "GOOGstock" "HPQstock" "MSFTstock" 
[6] "stockName" "YHOOstock" 

以下のようなデータフレームにそれらのすべてを割り当てるしようとすると、すべてのクールな

ls(pattern = "stock") 
[1] "AAPLstock" "FBstock" "GOOGstock" "HPQstock" "MSFTstock" 
[6] "stockName" "YHOOstock" 

どちらが変数としてではなく、文字列としてこれらの株式が含まれているために、DFのためです。したがって、以下の関数は私に望ましい結果をもたらします。

df <- list(AAPLstock, FBstock, GOOGstock, HPQstock, MSFTstock, YHOOstock) 

しかし、それはすべての変数を入力する必要があります。事は、私はそれをやろうとしているが株式を増やすつもりだ。私は100変数の名前をタイプしたくないし、変更するのは苦痛になるだろう。ですから、変数を表す文字列をls()などを使ってデータフレームに割り当てる方法が必要です。

私はParseとAssignを試みましたが、変数ではなくdf文字列が割り当てられました。

+0

なぜ完全に割り当て、stocknamesのあなたのベクトル上lapply使用して名前のリストを作成し使用してスキップしませんか? – Heroka

+0

@Herokaどうすればいいですか? –

+1

'lapply(stockName(functionName)read.table(paste(...)') –

答えて

1

mget()を使用して、複数の変数を文字列参照で取得することを検討してください。

df <- data.frame(mget(ls(pattern = "stock")), stringsAsFactors = FALSE) 

でも述べたようにも株式のランニングリストの構築を検討し、データフレームにrbind:

stockName <- c("AAPLstock", "FBstock", "GOOGstock", "HPQstock", "MSFTstock", "YHOOstock") 
listOfStocks <- lapply(stockName, 
         function(s) { 
          read.table(paste(s,'.txt', sep = ""), 
             quote="\"", comment.char="") 
         }) 
df <- do.call(rbind, listOfStocks) 
関連する問題