1. 程式人生 > >R數據導入導出(一): read.table()和read.csv()的區別

R數據導入導出(一): read.table()和read.csv()的區別

frame ati http 兩張 一句話 對齊 info ext tro

之前也參考過一些資料,雖然是這麽簡單的兩個buildin,還是仔細對比了一下,我有兩張txt,都是從cube中導出的,就意味著每一列的列數是不一樣的。R語言官方文檔中有這樣一句話不知道大家註意到了沒有:

技術分享圖片

意思是說,R語言對於導入的格式要求非常嚴格,可以說是不靈活的;簡而言之就是更希望的是格式在外部編輯好再導入。

那上面的需求能否做到,我們發現不管是逗號格式還是空格格式,都可以成為read.table()和read.csv()的數據源,那麽區別就在於列數不對等這個需求了,對於read.table()嚴格要求所有列都對等,而read.csv()並不要求,後者會按最大列,或指定的列數填充,空串可指定相應的字符或數字填充。

技術分享圖片

這裏不得不提到一個skip參數,例如例子中的skip=1,如果從第二行開始列數完全對齊,是可以導入成功的。

上例中的read.table(...)改為read.csv(...)可成功導入數據。

*註:

  1. 如果有數值,則最好按需設定格式
  2. 返回都是data.frame mode

技術分享圖片

R數據導入導出(一): read.table()和read.csv()的區別