作者allen1985 (我要低调 拯救形象)
看板R_Language
标题[问题] 整理资料
时间Sun Mar 19 08:04:29 2017
[问题类型]:
效能谘询(我想让R 跑更快)
[软体熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
整理资料 不使用for loop
[程式范例]:
资料如下:
data <- matrix(c("S11","R1","O11",
"S11","R2","O12",
"O11","R3","O12",
"S21","R1","O21",
"S21","R2","O22",
"O21","R3","O22",
"S11","R1","O11",
"S11","R2","O12",
"O11","R3","O12"), ncol = 3, byrow = T)
我想要把资料整理成
r.data <- matrix(c("S11","O11","O12", "2",
"S21","O21","O22", "1"), ncol = 4, byrow = T)
其中第四个Column 放的是 这组资料出现几次
简单讲就是 原本的资料是三个rows为一组 我想把资料
每一个unique组别 抓出来 并算出他出现几次
我先用了很笨的两个for loops搞定 但想问问看有没有好的方法
基本上第一个for loop 先把资料整理成
r.data <- matrix(c("S11","O11","O12",
"S21","O21","O22"), ncol = 3, byrow = T)
也就是先把unique的算出来
第二个for loop再去算每组unique的 出现几次 变成想要的data.frame
谢谢
简单讲三个rows 是一组
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 162.237.102.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1489881873.A.00F.html
※ 编辑: allen1985 (162.237.102.128), 03/19/2017 08:05:43
1F:→ carl090105: 用了tricky的方式以字串相加方式做处理,供你参考 03/19 11:10
3F:→ celestialgod: 都用data.table了... 善用by跟.N就好 03/19 11:11
4F:→ carl090105: 想法是当不确定column个数及名称时也可以用... 03/19 11:20
5F:→ celestialgod: 参考我回文吧(摊手 03/19 11:29
6F:→ allen1985: 感谢两位C大 03/19 11:53