作者rockken ()
看板Statistics
标题Re: [程式] 请教R的程式﹍资料处理
时间Mon May 7 18:06:19 2012
不知道这样写是不是最有效率,不过还是提供给你参考
AS=read.table("C:\\Users\\User\\Desktop\\1.txt",header = T)
AS1=table(AS$ID)
namess=names(AS1[AS1>1])
subset(AS, AS$ID %in% namess )
※ 引述《microcat (微喵)》之铭言:
: [软体程式类别]:
: 请填入软体程式类别 例如SAS、SPSS、R、EVIEWS...等
: R
: [程式问题]:
: 资料处理、回归、叙述统计、logistic、probit...等
: 资料处理
: [软体熟悉度]:
: 请把以下不需要的部份删除
: 中(3个月到1年)
: [问题叙述]:
: 请详尽叙述遭遇到的问题,可能的话,分点叙述你要处理的流程
: 目前有一笔资料,如下
: NO ID MA FA CD
: 1 A 95 48 33.1
: 2 A 77 44 12.9
: 3 B 46 94 10.0
: 4 B 83 17 11.7
: 5 B 54 33 21.2
: 6 C 11 48 54.6
: 7 D 91 31 17.4
: 8 E 66 55 15.3
: 9 E 10 85 16.8
: 10 E 47 97 21.0
: 希望能将资料中,ID重复出现的资料予以保留
: output 如下:
: NO ID MA FA CD
: 1 A 95 48 33.1
: 2 A 77 44 12.9
: 3 B 46 94 10.0
: 4 B 83 17 11.7
: 5 B 54 33 21.2
: 8 E 66 55 15.3
: 9 E 10 85 16.8
: 10 E 47 97 21.0
: 想请问是否有效率高的写法!
: 能够分点叙述处理流程,基本上在撰写程式或者跑统计时是相当有帮助的
: 甚至有经验的人可以藉此告知你步骤是否错误
: [程式范例]:
: 虽然张贴程式很可怕,但基本上有些程式还是要张贴才能解决
: 目前的想法是利用 table 找出重复的ID
: 然後利用判别的方式,将重复的ID抓取出来
: 但是因为资料有百万笔,如果每个重复的ID都要进行比对
: 真的是很花时间,所以想请教大家是否有较方便的写法,谢谢
: 之前在算重复资料的平均,可以用下列的语法
: list1 <- sapply(probe1, tapply, probe1[,1], mean)
: 例如上述的资料,就可以算出
: NO ID MA FA CD
: 1 A 86 46 23.0
: 2 B 61 48 14.3
: 3 C 11 48 54.6
: 4 D 91 31 17.4
: 5 E 41 79 17.7
: 是否有类似的语法,再请各位帮忙,谢谢
: -----------------------------------------------------------------------------
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.96.182
1F:推 mars05504:虽然我不是原po 但感谢你的程式! 受益良多! 05/07 20:11
2F:→ bmka:foo<-table(AS$ID) 05/07 20:46
3F:→ bmka:AS[rep(foo>1, foo),] 05/07 20:47
4F:→ bmka:啊,以上是假设data已经sort by id 05/07 20:54
5F:推 microcat:大大的感谢,谢谢R大及B大的帮忙 05/07 23:31