[問題] R csv讀檔 無法計算變項 factor

看板Statistics作者 (across)時間11年前 (2012/08/22 16:02), 編輯推噓3(3011)
留言14則, 3人參與, 最新討論串1/1
用 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

08/22 16:12, , 1F
1. 你必須要讓資料是符合numeric 或 integer 型態
08/22 16:12, 1F

08/22 16:13, , 2F
factor的話, 試試看 as.numeric(as.character(x))
08/22 16:13, 2F
我現在就是用這個 沒辦法讓它讀檔的時候就變成可計算的type嗎? 謝謝~

08/22 16:13, , 3F
2. 你要檢查有沒有attach(data1)
08/22 16:13, 3F

08/22 16:14, , 4F
3. 因為factor的底層是integer, 所以轉換成numeric要用
08/22 16:14, 4F

08/22 16:14, , 5F
前面推文的方法
08/22 16:14, 5F

08/22 16:15, , 6F
檢查型態可以用 class 或 typeof
08/22 16:15, 6F
※ 編輯: cawaiilulu 來自: 174.101.220.112 (08/22 16:26)

08/22 16:50, , 7F
在data.frame內,每一個column內的entry 都必須要是相同的
08/22 16:50, 7F

08/22 16:51, , 8F
type。當type有衝突的話R好像就會這樣處理了,所以你檢查
08/22 16:51, 8F

08/22 16:52, , 9F
看看是不是有某些奇怪的entry導致R把整個column轉成factor
08/22 16:52, 9F

08/22 17:02, , 10F
1的話 我都是分成兩張矩陣 A & B
08/22 17:02, 10F

08/22 17:11, , 11F
然後另行加兩個 columns 作為 "index"
08/22 17:11, 11F

08/22 17:11, , 12F
不管怎麼橋 最後用 merge.data.frame 就可以還原
08/22 17:11, 12F

01/30 04:06, , 13F
有遇過在CSV檔案中儲存格格式被設成貨幣,改回成數值(就
01/30 04:06, 13F

01/30 04:07, , 14F
是回到R重新打開後沒有千位分號)就解決了它的警告訊息
01/30 04:07, 14F
文章代碼(AID): #1GD98hxK (Statistics)