2014-03-04 21 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

相關問題