我有一个包含95188行和3列的数据集。我想计算一列中最大重复元素的数量。我应该在R中为此编码什么?
我试过以下
length(which(net2=="1"))
[1] 69400
> length(which(net2=="2"))
[1] 14250
> length(which(net2=="37"))
[1] 36
这可以计算所有可用数字中的个体。
根据要求,请考虑以下数据集:
26391 3038 3039 1
26392 3038 3040 1
26393 3038 3041 1
26394 3038 3042 2
26395 3038 3598 1
26396 3038 5632 1
26397 3038 5633 1
26398 3038 5634 1
26399 3038 5635 1
26400 3038 5636 1
26401 3038 5637 1
26402 3039 800 1
26403 3039 2068 2
26404 3039 2069 1
26405 3039 3036 1
26406 3039 3037 2
26407 3039 3038 1
26408 3039 3040 1
26409 3039 3041 1
26410 3039 3042 1
26411 3039 5961 1
26412 3039 5962 1
26413 3039 5963 1
26414 3039 16449 1
26415 3039 16450 1
26416 3039 16451 1
26417 3039 16452 1
26418 3040 800 1
26419 3040 2068 1
26420 3040 2069 1
26421 3040 3036 1
26422 3040 3037 1
26423 3040 3038 1
26424 3040 3039 1
26425 3040 3041 1
26426 3040 3042 1
26427 3041 800 1
26428 3041 2068 1
26429 3041 2069 1
26430 3041 3036 1
26431 3041 3037 1
26432 3041 3038 1
26433 3041 3039 1
26434 3041 3040 1
26435 3041 3042 2
26436 3041 4023 1
26437 3041 5726 1
26438 3041 6190 1
26439 3041 6191 1
26440 3041 7025 1
26441 3041 7371 1
26442 3041 7372 1
26443 3041 9743 1
26444 3041 9744 1
26445 3041 11313 1
26446 3041 11314 1
26447 3041 11315 1
26448 3041 11316 1
26449 3042 799 3
26450 3042 800 1
26451 3042 2068 6
26452 3042 2069 1
26453 3042 2469 1
26454 3042 2470 1
26455 3042 2505 2
26456 3042 2645 1
26457 3042 2650 1
26458 3042 3036 2
26459 3042 3037 1
26460 3042 3038 2
26461 3042 3039 1
26462 3042 3040 1
26463 3042 3041 2
26464 3042 3683 1
26465 3042 4023 1
26466 3042 4049 2
26467 3042 4295 2
26468 3042 4723 1
26469 3042 4756 1
26470 3042 5152 1
26471 3042 5153 3
26472 3042 5154 4
26473 3042 5255 4
26474 3042 5256 3
26475 3042 5632 2
26476 3042 5633 1
26477 3042 5634 1
26478 3042 5635 2
26479 3042 5636 2
26480 3042 5637 1
26481 3042 5726 1
26482 3042 6190 1
26483 3042 6191 1
26484 3042 6602 1
26485 3042 7025 1
26486 3042 7284 1
26487 3042 7371 1
26488 3042 7372 1
26489 3042 7862 1
26490 3042 9060 1
26491 3042 9242 1
26492 3042 9356 2
26493 3042 9357 3
26494 3042 9358 3
26495 3042 9359 1
26496 3042 9360 1
26497 3042 9723 1
26498 3042 9743 1
26499 3042 9744 1
26500 3042 10591 3
26501 3042 10592 3
26502 3042 10915 1
26503 3042 11176 1
26504 3042 11313 1
26505 3042 11314 1
26506 3042 11315 1
26507 3042 11316 1
26508 3042 11395 6
26509 3042 11836 1
26510 3042 12234 6
26511 3042 12235 5
26512 3042 12757 3
26513 3042 12758 2
26514 3042 13299 1
26515 3042 13300 1
26516 3042 13301 1
26517 3042 13688 1
26518 3042 14147 1
26519 3042 14148 1
26520 3042 14149 1
26521 3042 14303 1
26522 3042 15501 1
26523 3042 15513 1
26524 3042 15924 1
26525 3043 3044 3
26526 3043 3687 1
26527 3043 3688 1
26528 3043 3689 1
26529 3043 4167 1
26530 3044 3043 3
26531 3044 4167 1
26532 3045 193 6
26533 3045 1541 2
26534 3045 2517 2
26535 3045 3046 1
26536 3045 3126 3
26537 3045 3127 3
26538 3045 3944 1
26539 3045 4642 1
26540 3045 4713 2
26541 3045 4977 1
26542 3045 6518 1
26543 3045 6520 1
26544 3045 11980 1
26545 3045 12244 3
26546 3045 15303 1
26547 3046 3045 1
26548 3046 12387 1
26549 3046 12388 1
26550 3047 454 4
26551 3048 4 6
26552 3048 6 3
26553 3048 7 1
26554 3048 2212 1
26555 3048 3232 2
26556 3048 8785 1
第一列只是序列号。第2列和第3列显示了组合。我需要在第1列和第2列中找到重复最大的元素。
答案 0 :(得分:2)
set.seed(42)
DF <- data.frame(a=sample(c("a","b","c"),20,TRUE), b=sample(1:3,20,TRUE))
counts <- table(DF$a)
counts[which.max(counts)]
#c
#9
答案 1 :(得分:0)
您可以使用评论中所述的table():
a <- table(net2)
然后你可以通过提供数字作为列名来获得出现次数:
a[names(a)==1]
或者如果你想要yoy可以转换为dataframe:
as.data.frame(table(net2))
或者您可以使用
sum(net2 == 1)
它会将net2 == 1的所有TRUE值相加,所以基本上它会给你一个元素数
答案 2 :(得分:0)
a<-matrix( c( 1:2 , 2:1 , 4 , 1 , 1 , 2 ) ,nrow=4 )
a
> a
[,1] [,2]
[1,] 1 4
[2,] 2 1
[3,] 2 1
[4,] 1 2
length(which(a[,1]=="4")) # shows frequency of 4 in 1st col
length(which(a[,1]=="3")) # shows frequency of 4 in 1st col
This also works:
table(a[,1])
table(a[,2])