每當我使用read.csv()
和選項header=T
讀入文件時,標題會以奇怪(但可預測)的方式變化。頭文件名這應該閱讀"P(A<B)"
成爲"P.A.B."
,例如:當我在R中讀取文件時,標題中的更改?
> # when header=F:
> myfile1 <- read.csv(fullpath,sep="\t",header=F,nrow=3)
> myfile1
V1 V2 V3
1 ID Name P(A>B)
2 AB001 Alice 0.997
3 AB002 Bob 0.497
>
> # When header=T:
> myfile2 <- read.csv(fullpath,sep="\t",header=T,nrow=3)
> myfile2
ID Name P.A.B.
1 AB001 Alice 0.997
2 AB002 Bob 0.497
3 AB003 Charles 0.732
我試圖修復它這樣,但它沒有工作:
> names(myfile2) <- myfile1[1,]
> myfile2
3 3 3
1 AB001 Alice 0.997
2 AB002 Bob 0.497
3 AB003 Charles 0.732
於是我試圖用sub()
編寫一個函數,可以使用任何向量"arbitrary.lengths.here."
並返回一個向量"arbitrary(lengths>here)"
,但是我沒有真正得到任何地方,我開始懷疑我正在使這個問題比它必須更復雜。
你會如何處理這個標題問題?我是否在sub()
的正確軌道上?
'read.csv'及其父函數'read.table'有一個參數'check.names',默認爲'TRUE'。這會改變奇數字符或以數字開頭的名字,以達到更可接受的命名約定。嘗試用'check .names = FALSE'。 – Justin 2012-07-06 15:46:37
謝謝賈斯汀!這正是我所期待的。 – user1440196 2012-07-06 15:48:24