作者cawaiilulu (across)
看板Statistics
標題[問題] R csv讀檔 無法計算變項 factor
時間Wed Aug 22 16:02:48 2012
用 read.csv讀檔 也加了
stringsAsFactors=F,header=T)
attach(資料檔)後 想要計算data.frame中的某個variable
但是sum(變項) 不然就是說 type=factor 不然就是說type=character
無法做計算
1.請問有沒有辦法讓變項可以直接計算?
(這些變項並不是都是數字 有些有文字跟遺失值)
例如直接對每個變項做平均值 加總值 等等
2.sum(data1$vb1) 跟 sum(vb1) 有哪裡不一樣嗎? 為什麼有時候一個可以一個不可以?
因為都是用trial and error 這次想要認真問原因
3.as.numeric(vb1) 出來的數字會跟 vb1不一樣 為什麼會這樣?
記得有看過一篇文章寫 "本來就會不一樣 也不應該一樣....."
但是我忘記內容是什麼 as.numeric(vb1) 出來的是什麼意思? 排序後的scale嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 174.101.220.112
1F:推 Wush978:1. 你必須要讓資料是符合numeric 或 integer 型態 08/22 16:12
2F:→ Wush978:factor的話, 試試看 as.numeric(as.character(x)) 08/22 16:13
我現在就是用這個 沒辦法讓它讀檔的時候就變成可計算的type嗎? 謝謝~
3F:→ Wush978:2. 你要檢查有沒有attach(data1) 08/22 16:13
4F:→ Wush978:3. 因為factor的底層是integer, 所以轉換成numeric要用 08/22 16:14
5F:→ Wush978:前面推文的方法 08/22 16:14
6F:→ Wush978:檢查型態可以用 class 或 typeof 08/22 16:15
※ 編輯: cawaiilulu 來自: 174.101.220.112 (08/22 16:26)
7F:推 Wush978:在data.frame內,每一個column內的entry 都必須要是相同的 08/22 16:50
8F:→ Wush978:type。當type有衝突的話R好像就會這樣處理了,所以你檢查 08/22 16:51
9F:→ Wush978:看看是不是有某些奇怪的entry導致R把整個column轉成factor 08/22 16:52
10F:推 gsuper:1的話 我都是分成兩張矩陣 A & B 08/22 17:02
11F:→ gsuper:然後另行加兩個 columns 作為 "index" 08/22 17:11
12F:→ gsuper:不管怎麼橋 最後用 merge.data.frame 就可以還原 08/22 17:11
13F:→ TrebleA:有遇過在CSV檔案中儲存格格式被設成貨幣,改回成數值(就 01/30 04:06
14F:→ TrebleA:是回到R重新打開後沒有千位分號)就解決了它的警告訊息 01/30 04:07