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 列中大部分数据都是好几百,请问是怎么回事,该怎么修改,谢谢各位大神。
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
举例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)
对于你的数据集,比较懒,只写你需要的那三列,具体效果如下:
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")
这结果就是你想要的结果