我正在从r(使用quantmod从外部来源获取数据)中提取股票价格(开盘,最高价,最低价,收盘价,成交量等)的价格列表,但是省略了日期列
我认为问题在于,因为“日期”未被识别为变量,而其他列为(打开,高位等)。我试图通过as.Date插入日期(从Sys.Date-365到Sys.Date,因为我只需要一年的数据集),然后绑定它们。但是,由于长度不同,并且这是基于向量的列表,因此不适合(来自外部来源的数据仅在工作日内显示,而as.Date将显示完整的365天。
x <- getSymbols("SPY", src ="yahoo", from=Sys.Date()-365, to=Sys.Date(), auto.assign=FALSE )
write.csv(s, file = "test.csv")
像上面那样写csv将导致日期列显示为1、2、3、4 ...,但是我需要与价格匹配的日期,如在r的“查看”模式中显示的日期。
答案 0 :(得分:0)
它与xts zoo
创建的getSymbols
对象如何存储其行索引有关。只需将其转换为导出时的常规data.frame
,即可将日期索引包含为字符串:
ysyms <- getSymbols("SPY",
src = "yahoo",
from = Sys.Date()-365,
to = Sys.Date(),
auto.assign = FALSE
)
# Convert to data.frame on export.
write.csv(as.data.frame(ysyms), file = "test.csv")
答案 1 :(得分:0)
问题中的write.zoo
不是data.frame,它是zoo / xts对象,因此请使用write.zoo(x, "file.csv", sep = ",")
:
def logger(type_of_message, msg, ticket_no): #This will create records/log in app.log file. And can be used for debuging too.
log_file = str(datetime.utcnow().strftime('%d_%m_%Y')) + '.log'
if(type_of_message == 'INFO' or 'Info'):
logger = logging.LoggerAdapter(logging.getLogger(__name__), {'ticket_no': '%s' % (ticket_no)})
logging.basicConfig(filename = log_file, filemode = 'a', level = logging.INFO, format = '%(ticket_no)s - %(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.info(msg)
elif(type_of_message == 'ERROR' or 'Error'):
logger = logging.LoggerAdapter(logging.getLogger(__name__), {'ticket_no': '%s'%(ticket_no)})
logging.basicConfig(filename = 'app.log', filemode = 'a', level = logging.ERROR, format = '%(ticket_no)s - %(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.info(msg)