2014-03-04 20 views
2

此代码有效,但是,我想知道是否有更有效的方法。我有一个CSV文件,其中有一列股票代码。然后,我将这个csv读入R,并使用for循环将函数应用于每个ticker。read.csv直接转换为R中的字符向量

我在csv中读取数据,然后进入数据框并取出for循环需要正确运行的字符向量。

SymbolListDataFrame = read.csv("DJIA.csv", header = FALSE, stringsAsFactors=F) 
SymbolList = SymbolListDataFrame[[1]] 

for (Symbol in SymbolList){...} 

有没有办法将前两行写成一行?也许read.csv不是这个最好的命令?

谢谢。

UPDATE

我使用由杰克和鲍尔泰克建议readlines方法的方法。有一个警告“在csv文件上找到不完整的最后一行”,但我忽略它,因为数据是正确的。

回答

2
SymbolList <- readLines("DJIA.csv") 
+0

谢谢杰克,这是做到了。没有意义创建数据框,然后从中提取数据。我确实收到了一条警告消息,发现的最后一行不完整......我只是忽略它,因为我想要的数据其实是正确的。 – mks212

+0

@ user2926358您可以忽略该警告,通过执行'suppressWarnings(readLines(“DJIA.csv”))''或者在文件末尾添加一个空行 –

2
SymbolList <- read.csv("DJIA.csv", header = FALSE, stringsAsFactors=F)[[1]] 
0

readlines方法的功能是这里最好的解决方案。 请注意,read.csv函数不仅用于读取带有csv扩展名的文件。这只是read.table函数的参数,如header或sep设置不同。检查文档以获取更多信息。

+2

感谢Bartek。我知道这一点。我很习惯使用read.csv,因为几乎所有的R工作都涉及以csv格式存储的数据帧。 – mks212

相关问题