作者sinclairJ (Jun)
看板R_Language
标题[问题] Loop for rbind,table
时间Thu Apr 23 04:17:05 2015
各位先进好 又遇到问题了...自己摸了很久 尚未解决 於是上来请教大家
一开始的原始资料如下(实际资料有50万行)
先举个例子(物件aa)
X1 X2 X3
1 0 1
2 0 0
1 1 2
1 0 1
1 2 1
最後我想得到这个表格
序 0 1 2
X1 0 4 1
X2 3 1 1
X3 1 3 1
目前想到的方法是这样
z=apply(aa,2,table);z
> z
$X1
1 2
4 1
$X2
0 1 2
3 1 1
$X3
0 1 2
1 3 1
问题来了...
(1)我不知道该怎麽把他们合并成我想得到的那种表格
(2)因为使用套件的关系(Package HardyWeinber中的function HWExactMat)
所以每列一定都要有三栏(0,1,2),若没有就补0
但有些X变数table出来却只有两类结果(如上的X1)
这样子要怎麽把缺的那类补回去表格(如上例子,我要把X1中的0补回去)
0
注:X变数有3类结果:0,1,2
所以我实际资料转出的最後表格会长这样:
序 0 1 2
X1 0 4 1
X2 3 1 1
X3 1 3 1
.
.
.
X500000 24 0 55
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.184.161.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1429733828.A.D4C.html
※ 编辑: sinclairJ (111.184.161.128), 04/23/2015 04:23:55
1F:→ showfeb: acast(melt(z),L1~Var1,value.var="value") 04/23 09:22
2F:→ showfeb: 先require(reshape2) 04/23 09:23
3F:→ celestialgod: dcast(gather(dat), value ~ key, length) 04/23 10:21
4F:→ celestialgod: library(tidyr); library(reshape2) 04/23 10:21
5F:→ celestialgod: 经过apply会比较慢一点 04/23 10:22
6F:→ celestialgod: dat应该是你的aa 04/23 10:26
(celestialgod 删除 celestialgod 的推文: d)
(celestialgod 删除 celestialgod 的推文: d)
7F:→ celestialgod: 推错,自己删掉,顺便测试一下删推蚊功能@@ 04/23 15:08