r 从 mysql 数据库循环中获取数据
r fetch data from mysql db loop
我使用 r:
从我的 mysql 数据库中成功获取了数据
library(RMySQL)
mydb = dbConnect(MySQL(), user='user', password='pass', dbname='fib', host='myhost')
rs = dbSendQuery(mydb, 'SELECT distinct(DATE(date)) as date, open,close FROM stocksng WHERE symbol = "FIB7F";')
data <- fetch(rs, n=-1)
dbHasCompleted(rs)
所以现在我有一个对象列表:
> print (typeof(data))
[1] "list"
每个元素都是一个元组(?),如日期(图表)、打开(长)、关闭(长)
好的,现在我的问题是:我想获得收盘价 (x) 和第二天开盘价 (x+1) 之间的百分比差异向量,直到结束,但我无法正确访问该项目!
示例:((开仓)/收仓*100)-100)
我试试:
for (item in data){
print (item[2])
}
以及所有可能的组合,例如:
for (item in data){
print (item[][2])
}
但无法访问正确的元素:!有人可以帮忙吗?
您的 MySQL 查询中的问题比这更大,因为您没有指定 ORDER BY
子句。考虑使用以下查询:
SELECT DISTINCT
DATE(date) AS date,
open,
close
FROM stocksng
WHERE
symbol = "FIB7F"
ORDER BY
date
这里我们按日期对结果集进行排序,这样就可以说出当前和下一次开盘或收盘。现在有了适当的查询,如果您想获得当前收盘价和第二天开盘价之间的百分位数差异,您可以尝试:
require(dplyr)
(lead(open, 1) / close*100) - 100
或使用基数 R:
(open[2:(length(open)+1)] / close*100) - 100
naif 版本:
for (row in 1:nrow(data)){
date <- unname (data[row,"date"])
open <- unname (data[row+1,"open"])
close <- unname (data[row,"close"])
var <- abs((close/open*100)-100)
print (var)
}
我使用 r:
从我的 mysql 数据库中成功获取了数据library(RMySQL)
mydb = dbConnect(MySQL(), user='user', password='pass', dbname='fib', host='myhost')
rs = dbSendQuery(mydb, 'SELECT distinct(DATE(date)) as date, open,close FROM stocksng WHERE symbol = "FIB7F";')
data <- fetch(rs, n=-1)
dbHasCompleted(rs)
所以现在我有一个对象列表:
> print (typeof(data))
[1] "list"
每个元素都是一个元组(?),如日期(图表)、打开(长)、关闭(长)
好的,现在我的问题是:我想获得收盘价 (x) 和第二天开盘价 (x+1) 之间的百分比差异向量,直到结束,但我无法正确访问该项目!
示例:((开仓)/收仓*100)-100)
我试试:
for (item in data){
print (item[2])
}
以及所有可能的组合,例如:
for (item in data){
print (item[][2])
}
但无法访问正确的元素:!有人可以帮忙吗?
您的 MySQL 查询中的问题比这更大,因为您没有指定 ORDER BY
子句。考虑使用以下查询:
SELECT DISTINCT
DATE(date) AS date,
open,
close
FROM stocksng
WHERE
symbol = "FIB7F"
ORDER BY
date
这里我们按日期对结果集进行排序,这样就可以说出当前和下一次开盘或收盘。现在有了适当的查询,如果您想获得当前收盘价和第二天开盘价之间的百分位数差异,您可以尝试:
require(dplyr)
(lead(open, 1) / close*100) - 100
或使用基数 R:
(open[2:(length(open)+1)] / close*100) - 100
naif 版本:
for (row in 1:nrow(data)){
date <- unname (data[row,"date"])
open <- unname (data[row+1,"open"])
close <- unname (data[row,"close"])
var <- abs((close/open*100)-100)
print (var)
}