作者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