2014-05-06 44 views
0

我不確定我是否提供了足夠的信息,但如果我不是,請告訴我。從數據表中讀取得到因子不是雙倍

我加載了一個CSV文件的數據框,整列和一列,c,加倍。我們稱這個數據幀爲tb

現在我想從數據表tb中提取特定的double。然而,當我在什麼鍵,像

print(tb[4,][['c']]); 

它給了我像

[1] 790.000000000001 
92 Levels: -730.33000000000001 -290.0 -912.47 -37.8000000000000089 -291.780000000000002  
... null 

響應我想是這樣想起來該行並打印出來不同。沒有問題。然而,在環境中,它記錄它類似Factor w/ 92 levels ...

我一直在線檢查資源,但無濟於事。不知道這是否是我自己機器上的異常行爲。

更新

我以前read.csv如下:

tb <- read.csv(file="test_3.csv", head=TRUE, sep=","); 

當然,是CSV文件中的一些行如下:

a,b,c,d 
1,170,771.8,1170.0 
1,1,1.87,76.0 
1,76,345.04,0.0 
1,102,463.08,566.0 
4,188,1530.3200000000002,3548.0000000000005 

尾聲

我的csv文件有像這樣的行 4,188,null,3548.00000000 00005

因此讀取文件給出了問題。在read.csv上使用na.strings=("null")命令創造了奇蹟。

+0

您是使用'read.csv2'還是'read.csv'? – gagolews

+0

'read.csv'。我更新了這個問題。 – bryansis2010

+0

所以另外請提供幾行csv。文件。順便說一句,你可以做'tb [4,] < - as.numeric(as.character(tb [4,]))' – gagolews

回答

1

聽起來像您在該列中的某處有一個非數字值。你可以用

tb$d[is.null(as.numeric(as.character(tb$d))] 

找到它,如果它的東西,如「空」,你可以將這些值自動轉換爲正確的遺漏值在R中的na.strings參數

read.csv(..., na.strings="null") 
當你在數據讀取