2012-11-05 18 views
3

我與數字列標籤的矩陣,例如:如何阻止R將X預先添加到我的數字列標籤中?

1,2,3 
1,2,3 
4,5,6 
7,8,9 

當我使用as.matrix(read.table("myfile", sep=",", header=TRUE)這個數據加載到R中的變量,並打印所得到的矩陣,列標題已被預先考慮與X,和這額外字符出現在圖中等:

 X1  X2  X3 
[1,] 1  2  3 
[2,] 4  5  6 
[3,] 7  8  9 

我該如何阻止此行爲?

+3

我懷疑你沒有理解這條道路的不利後果。 –

回答

7

供應check.names=FALSEread.table

請注意,當data.frame具有非標準名稱時,對其列的任何引用都必須用刻度線包圍,例如,

my.df <- read.table(text='1,2,3 
1,2,3 
4,5,6 
7,8,9', header=TRUE, sep=',', check.names=FALSE) 

my.df$`1` 
with(my.df, `1`) 
attach(k) 
`1` 

此外,調用transform,如,將取代他們的標準形式(X1X2X3),因爲transform電話data.frame()其默認參數的列名。

設置check.names=FALSE雖然在某些非常特殊的情況下很有用,但會允許重複的列名和非語法名,這可能會導致以後出現任何數量的問題。使用時請小心謹慎。

data.frame()默認情況下使用check.names=TRUE,因爲在許多情況下,R嘗試將數據幀的列名解釋爲變量;如果列名不是語法上有效的名稱(請參閱?make.names),或者如上所述使用反標記進行保護,則在這些上下文中將出現錯誤。

+0

謝謝!作品一種享受。 – Brabster

+1

@mplourrde:我認爲它會負責你描述這種選擇的後果。 –

+0

@DWin請隨時添加我錯過的任何內容。 –

相關問題