clover5200
2017-12-03 10:25
采纳率: 0%
浏览 11.1k

R语言数据框分组求最大值

hello,各位大神好,我导入一个CSV文件,有8列,如图。
图片说明

我想按PIN列及vts列作为分组依据,以cls_seq作为统计依据求cls_seq列的较大值。

代码如下

 data1<-read.csv("C:/**/**/Desktop/user_click1.csv")head(data1)  
class(data1)            ##查看data1属性                                                                 
str(data1)                ##查看data1列属性                                                                         
max_seq<- aggregate(data1[7],data1[1:2],max)    ##分组求较大值
head(max_seq)        ##输出max_seq前6行

我觉得答案应该是分组及较大值,如

 pin             vts    cls_seq
*yx_193486389    543    3
*yx_193486389    544    3

但是结果如下图 ,我查过所有数据,cls_seq较大不超过100,可是我的max 列中大部分数据都是好几百,请问是怎么回事,该怎么修改,谢谢各位大神。
图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_17034749 2017-12-03 17:44

    pcm_df$duplicated <- duplicated(paste(pcm_df$OUT_MAT_NO, pcm_df$Posit, sep = "_"), fromLast = TRUE)
    pcm_df <- subset(pcm_df, !duplicated)
    pcm_df$duplicated <- NULL

    评论
    解决 无用
    打赏 举报
  • lhhhh521 2017-12-05 07:14

    举例1:
    cc<-aggregate(iris[,c(1,2,3,4)],by=list(iris[,5]),sum)
    举例2:
    x=data.frame(name=c("张三","李四","王五","赵六"),
    sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150,155))
    aggregate(x[,3:4],by=list(sex=x$sex),FUN=mean)

    sex age height

    1 F 26 152.5

    2 M 30 168.0

    评论
    解决 无用
    打赏 举报
  • chengouqi 2017-12-20 02:12

    对于你的数据集,比较懒,只写你需要的那三列,具体效果如下:

    data1 <- data.frame(pin = c("*yx_193486389", "*yx_193486389", "*yx_193486389", "*yx_193486389", "*yx_193486389", "*yx_193486389"),  vts = c(543, 543, 543, 544, 544, 544), cls_seq = c(1, 2, 3, 1, 2, 3))
    max_seq <- aggregate(cls_seq ~ pin+vts, data = data1, FUN = "max")
    

    运行结果如下:
    图片说明

    这结果就是你想要的结果

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题