结合的答案波纹管:
#First create a vector with all my dates
#Create a frame to hold the data
testdf = data.frame(sdci=rep("",1),stringsAsFactors=FALSE)
#needs library(lubridate) for month/year functions
library(lubridate)
#Loop and Add data to the df
for (i in 1:lenght(dates2){testdf[i, ] = c(dbGetQuery(con,paste0(' SELECT \
sdci_',year(dates2[i]),'_',sprintf("%02d",month(dates2[i])),'_mean from \
gr_sea_outlets_tier2 order by area_km2'))}
END编辑
我一个接一个用这个命令让我的数据:
data$"2000/8/1" = dbGetQuery(db,"SELECT sdci_2000_08_mean as '2000/08/01' from gr_sea_outlets_tier2 order by area_km2 desc limit 1;")
但由于我有50个表格的过程beco mes有点烦人。
我试图为它创建一个循环,但我无法确定语法。
这里是我想要做一些伪代码(庆典等):
for year in $(seq 2000 2010); do
for month in $(seq -w 05 09); do
data$"$year"/"$month"/01" = dbGetQuery(db,"SELECT sdci_$year_$month_mean as '$year/$month/01' from gr_sea_outlets_tier2 order by area_km2 desc limit 1;");
done;
done
作为tempory解决香港专业教育学院设法获取的bash创建一组命令为我解析成R.
for year in $(seq 2000 2010); do for month in $(seq -w 05 09); do echo data\$\'"$year"-"$month"-"01"\' \<\- dbConnect\(db,\"SELECT sdci_"$year"_"$month"_mean from gr_sea_outlets_tier2 order by area_km2 desc limit 1\;\"\) >> r.cmd.data ; done; done
但Ι认为它可能这样做在'r
交叉张贴是一个坏主意。无论如何,这更相关。仅仅因为R是统计语言并不意味着你的问题与统计有关。 – Dason
另外,你有没有试过查找'for'循环的语法?您可以使用'?'作为''或搜索'for循环r'来获得语法。 – nograpes
你在R语法中的一个例子似乎与其余的不一致。你穿sdci_2000_07_mean,但其余的似乎使用2000/08。这应该解决吗? – Dason