大家好!我手头上有一部分数据,如图A.ID相同的代表同一个人,对应后面好几个不同时期的数据
我想根据B.PREGNANCY_WEEK_DAY这一列数据里面最大的,取出A.ID相同的这几条记录里面的其他列数据
如前四个A.ID是一样的,我想取出的是239,58,52,163
感谢各位大神!
楼主: ltxmu
|
5293
16
[实际应用] 根据最大值取对应的数据 |
高中生 35%
-
|
回帖推荐fdsasdfddsa 发表于15楼 查看完整内容 上面的错误我不是很清楚怎么发生的,可能要提供完整代码
不过重新看了一下,发现之前误解了你的描述。你是要依据B这一行的最大值取出整行;而我之前的代码把除了A.ID的每一列都求了最大值后返回回来。
下面是修改后的代码,加了一点注释。如果有问题再问
[/backcolor]
注:上面每一个引号的列名都要换成你自己的。
经管之家的网站发$会出错,只好用各种带逗号和引号的中括号来代替
fdsasdfddsa 发表于4楼 查看完整内容 看看是不是你要的
#编造的数据
id=c(1,1,2,2,1)
b=c(1,2,3,4,5)
c=c(5,6,7,8,9)
test=data.frame(cbind(id,b,c))
#处理代码
find_col_max=function(x) tapply(x,id,FUN = max) #把id改成你存放的人编号的变量
apply(test,MARGIN = 2,find_col_max) #把test改成你的data frame变量
| ||
| ||||||||
| ||
| ||||||||
| ||
京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明 免责及隐私声明