[程式] R讀資料...

看板Statistics作者 (幸福的尾巴)時間12年前 (2012/07/24 01:52), 編輯推噓1(1016)
留言17則, 5人參與, 最新討論串1/1
[軟體程式類別]:R [程式問題]:資料讀取 [軟體熟悉度]:5個小時... [問題敘述]: 為了如何讀資料,我已經把GOOGLE翻過一遍,但大部分的教學都很相似... 所以才來版上發問 當我在讀資料時,會發生 1. 第 X 列沒有 X 個元素 <-表示CSV檔裡面的資料可能有空缺 2. 讀檔時,CSV檔裡面是不是不能有中文字 3. 出現 more columns than column names 的錯誤 [程式範例]: data<-read.table("d:/a/213.csv", header = TRUE) 就是執行這個出現more columns than column names 的錯誤 以下是我CSV檔的資料 ID b c 22201040001 46200 0 22201040001 46200 0 由於現在是測試階段,所以裡面的DATA並沒有很多 麻煩版上的高手幫忙解惑 光學讀資料就花了我好幾個小時了> < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.70.37

07/24 10:37, , 1F
讀csv檔試試看 read.csv 應該能解決你的問題
07/24 10:37, 1F

07/24 10:38, , 2F
語法基本上沒錯,但是 read.table 好像是拿來讀記事本?
07/24 10:38, 2F

07/24 10:39, , 3F
這點我不太確定,因為我通常是用 read.csv ,所以你試試
07/24 10:39, 3F

07/24 10:40, , 4F
如果用對語法,據我所知你上面提的三個問題我都不曾遇過
07/24 10:40, 4F

07/24 10:41, , 5F
有空缺會填 "NA" , 文字可以讀(不過可能還需要指令限定
07/24 10:41, 5F

07/24 10:42, , 6F
他是文字,指令是"as.character(該變項)")
07/24 10:42, 6F

07/24 10:59, , 7F
CVS是逗號分隔,用read.table要加參數
07/24 10:59, 7F

07/24 11:08, , 8F
感謝樓上提醒,剛剛試了下改成這樣應該就可以了
07/24 11:08, 8F

07/24 11:09, , 9F
data=read.table("d:/a/213.csv",header=TRUE,sep=",")
07/24 11:09, 9F

07/24 11:10, , 10F
不過用我建議的read.csv也可以
07/24 11:10, 10F
雖然昨天睡前自己弄出來了, 不過還是十分感謝幫忙~~~~ 不過還有一個問題XD 我在執行迴歸時,想把自變數取ln 請問是要到函數外面先設定還是在裡面, ex: savings <- read.table("d:/a/222.csv", header = TRUE, sep = ",") savings.lm <- lm(O ~ J , data = savings) 這裡要成log(O)嗎?? summary(savings.lm) 還是要到外面去重新設定一個變數 ex: savings <- read.table("d:/a/222.csv", header = TRUE, sep = ",") AAA <- log(O) savings.lm <- lm(AAA ~ J , data = savings) summary(savings.lm) 想請問哪個才對 還都是錯> <

07/24 13:12, , 11F
都可以
07/24 13:12, 11F
我跑出來是這樣耶@@ > savings <- read.table("d:/a/222.csv", header = TRUE, sep = ",") > AAA <- log(O) 錯誤: 找不到物件 'O' > savings.lm <- lm(AAA ~ J , data = savings) 錯誤在eval(expr, envir, enclos) : 找不到物件 'AAA' > summary(savings.lm) 錯誤在summary(savings.lm) : 找不到物件 'savings.lm' > savings <- read.table("d:/a/222.csv", header = TRUE, sep = ",") > savings.lm <- lm(log(O) ~ J , data = savings) 錯誤在lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : NA/NaN/Inf in 'y' > summary(savings.lm)

07/24 13:55, , 12F
中文問題請查encoding相關的說明
07/24 13:55, 12F

07/24 13:55, , 13F
通常windows底下要用big5, Linux則是用UTF-8
07/24 13:55, 13F
這個...我看不太懂... ※ 編輯: q6261901 來自: 218.173.68.128 (07/24 14:43)

07/24 14:44, , 14F
先謝謝大家好了 剩下我再研究看看 感謝
07/24 14:44, 14F

07/24 19:57, , 15F
sep="\t" , header=T , skip=10 這些都試試看
07/24 19:57, 15F

07/24 19:58, , 16F
不然就出大絕 read.delim() , 不要下 sep , 之後自己切開
07/24 19:58, 16F

07/24 19:58, , 17F
用 apply(data,1,strplit,split="\t") 之類的方法
07/24 19:58, 17F
文章代碼(AID): #1G3Oz1o1 (Statistics)