2013-05-11 1 views
1

Я должен сделать динамическую переменным, хранить различные значения, как указано в псевдокодеConcat Строки с переменным значением для формирования нового Variable

for(i in 1:30) 
"Day"+i <- sqldf("select * from call_details where day ="+i) 

Можно ли в R или нет, и если возможно, то как? Я просто могу конкатрировать строку (используя paste), которая хранит конкретизированную строку как символ, но не может сохранить значение на ней. Также я не смог узнать, как передать переменную в SQL-запросе.

+0

Для вставки переменных в выберитеСтроковый см Пример 5 на sqldf Домашняя страница: http://sqldf.googlecode.com –

ответ

3

Вы должны хранить подобные данные в структуре как list вместо свободных плавающих переменных. Сначала это может показаться странным, но поверьте мне, когда я скажу, что это предотвратит много печали дальше по линии. Например:

Days <- lapply(1:30,function(i) sqldf(paste("select * from call_details where day =",i))) 

Затем вы можете получить доступ к компонентам списка, как:

Days[[1]] 
Days[[2]] 
etc etc 

Вместо использования day1day2 и т.д. и т.п.

1

Возможно, вы захотите изучить assign, чтобы иметь возможность создавать переменные так, как вы описываете. В общем, вы можете использовать paste, но вы соединяете строки с запятыми, а не с плюсами.

Что-то вроде следующего:

for(i in 1:30) 
    assign(paste0("Day",i), sqldf(paste("select * from call_details where day =",i))) 
Смежные вопросы