我写了一个小程序,通过OnVista导入MSCI World Data(我在yahoo finance上找不到):
library(fImport)
library(fBasiscs)
notation="3193857"
datestart=Sys.Date()-366
interval="Y1"
URL <- composeURL("www.onvista.de/onvista/boxes/historicalquote/export.csv?","notationId=", notation, "&dateStart=", datestart, "&interval=", interval )
data<-read.csv2(URL,header=TRUE,sep=";",dec=",",na.strings=c(""))
我的问题是,无论我在read.csv2
函数中的命令如何,R中的genearetd表都有字符或因子。
我的想法是,这是因为第254行导入了空单元格。但即使我将空单元命令为NA,这对整行也不起作用,也不会影响数字列的导入。它们仍然是因素或角色。
有人能帮助我吗?
答案 0 :(得分:0)
您的问题不是缺失的值,而是数字包含1000s分隔符的事实。您可以阅读function (template) {
var jTemplate = $($.parseHTML(template, document, true));
console.log(jTemplate);
var content = jTemplate.filter('.page-wrap').contents()
.filter('#content-wrapper').contents().filter('#content')
.contents().filter('#main-content');
console.log(content);
$("agency-journal-content").replaceWith(content);
}
并转换相关列,也可以按照以下链接中的建议定义新的类定义:
这里我们定义一个新类,首先删除句点(1000分隔符),然后将逗号转换为句点。
data.frame
这导致
setClass("MyNum")
setAs("character", "MyNum",
function(from) as.numeric(gsub(",", ".", gsub("\\.", "", from) ) ))
indata <- read.csv2(URL, sep=";", dec=",",
colClasses=c("character", rep("MyNum", 4), "numeric"))
并且类是
head(indata)
Datum Eroeffnung Hoch Tief Schluss Volumen
1 11.04.2016 1632.14 1632.14 1632.14 1632.14 0
2 12.04.2016 1644.21 1644.21 1644.21 1644.21 0
3 13.04.2016 1666.16 1666.16 1666.16 1666.16 0
4 14.04.2016 1671.96 1671.96 1671.96 1671.96 0
5 15.04.2016 1670.46 1670.46 1670.46 1670.46 0
6 18.04.2016 1675.32 1675.32 1675.32 1675.32 0