1

我必须制作动态变量来存储伪代码中给出的不同值

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

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

4

2 回答 2

3

您应该将类​​似的数据存储在结构中,list而不是自由浮动变量。起初这可能看起来很奇怪,但相信我,当我说这将防止更多的悲伤时。例如:

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

然后您可以访问列表的组件,例如:

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

而不是使用day1 day2

于 2013-05-11T09:10:53.697 回答
1

您可能希望研究assign能够以您描述的方式构造变量。一般来说,你可以使用paste,但你用逗号连接字符串,而不是加号。

类似于以下内容:

for(i in 1:30)
    assign(paste0("Day",i), sqldf(paste("select * from call_details where day =",i)))
于 2013-05-11T08:35:20.657 回答