2015-05-17 18 views
1

我讀了很多文本文件,每個文件包含兩列:1)名稱2)實數。讀書,我使用lapply功能的所有文件,如下所示:防止將數字轉換爲讀取R中的文件中的因素

Exp_data <- lapply(FileNames, function(x) read.table(file = x, fill = TRUE, skip = 2, header = F)) 

我只需要文件的第二列,所以我用下面的指令獲取第二列:

data <- sapply(1:length(Exp_data), function(x) Exp_data[[x]][2]) 

運行這個指令後, data是每個列表已被轉換爲因子的列表! 如何防止將數字轉換爲因子?

我的最終目標是製作一個矩陣,其中每列是源文件的數值列。

有什麼想法?

+1

它可能是你的數字列有一些字符元素,使它轉換爲字符類。默認情況下,stringsAsFactors = TRUE,所以你得到因子類。一種選擇是使用'stringsAsFactors = FALSE',然後用'as.numeric(yourdata $ yourcolumn)'將'character'類轉換爲'numeric',字符元素將被強制轉換爲'NA'。沒有可重複的例子,雖然 – akrun

+0

不容易發表評論您也可以檢查小數是否用','表示。在這種情況下,您可以在'read.table'中指定'dec =',''' – akrun

+0

謝謝@akrun。你是對的,有些數字在文件中是空白的。 – user4704857

回答

0

正如在評論中提到的,stringsAsFactors=FALSE應該用於讀取文件,所以字符串不再被轉換爲因素。

相關問題