2017-04-12 18 views
1

私はRを使い慣れていません。forループのリストに格納するベクトルは複数あります。私は[]、[[]]と()を使って試してみましたが、dateRangeが見つからないというエラーが表示されています。コードを助けて修正してもらえますか?forループを使用してリストに複数のベクトルを格納する

dateRange1 <- c('2015-01','2015-12') 
dateRange2 <- c('2016-01','2016-12') 
ind <- list() 

for (a in 1:2) { 
    ind[a] <- dateRange(a) 
} 

ind 

ありがとうございました!

+0

それは非常に明確ではありませんが、あなたがこの 'DATERANGE =リスト(Cのようになめらか必要があります( '2015から01'、 '2015から12')、C( '2016から01'、 '2016から12 ')) '? –

+0

私は明確でない場合は申し訳ありません。しかし、私はすべてのdateRangeを "ind"というリストに格納したいので、ind [[1]]にアクセスするとdateRange1とind [[2]の値が表示され、dateRange2の値が表示されます。これが意味をなさないことを望みます。 – aotearoa

+0

複数のベクターはどうやって入手できますか?その過程であなたのリストを生成することができます。 – jogo

答えて

3

あなたは本当に、get()またはmget()

ind <- mget(paste0("dateRange", 1:2)) 

を使用することを望む場合は、あなたが前にどこかassign()を使用した場合Normalyあなたはベクトルの、このような束を得ます。これが、データ生成のプロセスを再構成する必要があるときです。 (通常、assign()の使用は良い考えではありません。質問が:を使用する場合、assign()答えはほぼです:なし ")。
Why is using assign bad?

+0

ありがとうございます。このmget関数は、私がSHIN RのdateRangeInputに複数の入力$ daterangeを持つ場合にも適用されます。 – aotearoa

2

dateRangeというオブジェクトはありません。 evalparseを使用する必要があることを行うにはa <- 1を設定して個別に実行して、その動作を確認します。 paste0("dateRange", a)の内容を確認し、parse(text = paste0("dateRange", a))、次にeval(parse(text = paste0("dateRange", a)))を確認します。

dateRange1 <- c('2015-01','2015-12') 
dateRange2 <- c('2016-01','2016-12') 
ind <- list() 

for (a in 1:2) { 
    ind[[a]] <- eval(parse(text = paste0("dateRange", a))) 
} 

ind 
+0

Jakeに感謝します。これは私が探しているものです。あなたの時間を感謝します。 – aotearoa

関連する問題