作者q6261901 (幸福的尾巴)
看板Statistics
標題[程式] R讀資料...
時間Tue Jul 24 01:51:55 2012
[軟體程式類別]: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
1F:→ ching0629:讀csv檔試試看 read.csv 應該能解決你的問題 07/24 10:37
2F:→ ching0629:語法基本上沒錯,但是 read.table 好像是拿來讀記事本? 07/24 10:38
3F:→ ching0629:這點我不太確定,因為我通常是用 read.csv ,所以你試試 07/24 10:39
4F:→ ching0629:如果用對語法,據我所知你上面提的三個問題我都不曾遇過 07/24 10:40
5F:→ ching0629:有空缺會填 "NA" , 文字可以讀(不過可能還需要指令限定 07/24 10:41
6F:→ ching0629:他是文字,指令是"as.character(該變項)") 07/24 10:42
7F:→ obarisk:CVS是逗號分隔,用read.table要加參數 07/24 10:59
8F:→ ching0629:感謝樓上提醒,剛剛試了下改成這樣應該就可以了 07/24 11:08
9F:→ ching0629:data=read.table("d:/a/213.csv",header=TRUE,sep=",") 07/24 11:09
10F:→ ching0629:不過用我建議的read.csv也可以 07/24 11:10
雖然昨天睡前自己弄出來了,
不過還是十分感謝幫忙~~~~
不過還有一個問題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)
想請問哪個才對 還都是錯> <
11F:→ obarisk:都可以 07/24 13:12
我跑出來是這樣耶@@
> 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)
12F:推 Wush978:中文問題請查encoding相關的說明 07/24 13:55
13F:→ Wush978:通常windows底下要用big5, Linux則是用UTF-8 07/24 13:55
這個...我看不太懂...
※ 編輯: q6261901 來自: 218.173.68.128 (07/24 14:43)
14F:→ q6261901:先謝謝大家好了 剩下我再研究看看 感謝 07/24 14:44
15F:→ gsuper:sep="\t" , header=T , skip=10 這些都試試看 07/24 19:57
16F:→ gsuper:不然就出大絕 read.delim() , 不要下 sep , 之後自己切開 07/24 19:58
17F:→ gsuper:用 apply(data,1,strplit,split="\t") 之類的方法 07/24 19:58