具有变量值的Concat字符串,以形成新变量

时间:2013-05-11 08:12:32

标签: r variables concatenation

我必须创建动态变量,它存储伪代码中给出的不同值

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

是否可以在R中,如果可能,那么如何?我只能连接字符串(使用paste),它将连接的字符串存储为字符,但无法在其上存储值。此外,我无法找到如何在sql查询语句上传递变量。

2 个答案:

答案 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)))