我必须创建动态变量,它存储伪代码中给出的不同值
for(i in 1:30)
"Day"+i <- sqldf("select * from call_details where day ="+i)
是否可以在R中,如果可能,那么如何?我只能连接字符串(使用paste),它将连接的字符串存储为字符,但无法在其上存储值。此外,我无法找到如何在sql查询语句上传递变量。
答案 0 :(得分:3)
您应该在类似list
的结构中存储类似的数据,而不是自由浮动变量。起初这可能看起来很奇怪,但相信我,当我说这将防止更多的悲伤进一步下线。 E.g:
Days <- lapply(1:30,function(i) sqldf(paste("select * from call_details where day =",i)) )
然后您可以访问列表的组件,如:
Days[[1]]
Days[[2]]
etc etc
而不是使用day1
day2
等等
答案 1 :(得分:1)
您可能希望调查assign
以便能够以您描述的方式构造变量。一般来说,您可以使用paste
但是用逗号连接字符串,而不是连接。
如下所示:
for(i in 1:30)
assign(paste0("Day",i), sqldf(paste("select * from call_details where day =",i)))