データフレームがあり、各変数の長さが異なります(短い変数にはNA値があります)。Rのデータフレームのループについて
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 581 466 528 424 491 500 652 219 520
2 655 320 532 350 508 498 660 85 473
3 479 349 510 150 490 499 611 598 459
4 855 585 471 92 508 499 557 668 493
5 318 538 506 113 492 499 347 291 483
6 581 329 502 265 509 502 301 293 511
7 741 359 536 399 498 500 565 690 506
8 257 475 521 296 498 502 316 53 536
9 759 434 538 447 490 500 614 449 524
10 525 527 506 174 499 500 649 395 456
11 621 670 489 756 497 498 401 443 465
12 789 307 504 808 501 498 499 63 533
13 368 392 515 940 496 501 638 909 514
14 242 549 480 380 503 501 489 347 465
15 432 405 451 914 493 501 319 324 541
16 608 609 514 441 497 499 572 932 473
17 301 691 548 783 497 502 458 301 482
18 792 638 493 964 505 498 378 692 500
19 727 377 536 974 491 499 301 957 524
20 597 463 518 418 491 499 626 245 504
21 700 407 549 375 501 501 351 706 495
22 705 661 493 798 492 501 660 694 494
23 454 426 523 28 504 498 362 797 471
24 432 627 452 550 491 500 474 50 500
25 124 338 501 779 499 502 684 316 514
26 826 683 477 751 492 502 632 308 524
27 218 631 500 296 502 498 693 169 515
28 460 652 502 306 505 498 666 988 459
29 683 621 521 956 498 501 404 218 497
30 316 372 516 524 500 499 405 54 461
31 503 370 520 429 500 502 510 579 493
32 357 369 521 480 495 501 410 667 470
33 451 617 524 191 493 498 535 668 450
34 335 498 522 713 493 498 566 67 520
35 473 421 479 834 497 499 696 670 541
36 447 360 451 708 492 501 528 744 538
37 137 490 490 740 508 500 630 590 469
38 228 455 488 91 500 501 426 477 472
39 873 555 456 520 510 500 662 154 536
40 564 364 532 236 504 498 338 497 516
41 216 480 460 498 503 502 605 566 520
42 389 572 532 943 501 499 572 150 539
43 490 531 536 941 501 502 653 557 508
44 772 421 536 693 507 498 447 861 451
45 390 403 454 985 509 498 695 859 516
46 264 369 550 962 494 498 684 317 504
47 269 667 508 199 490 501 690 757 481
48 877 616 484 516 495 501 300 636 472
49 755 534 511 882 510 499 547 530 479
50 447 455 490 91 504 501 572 NA 539
51 137 555 488 520 503 500 653 NA NA
52 228 364 456 236 501 498 447 NA NA
53 873 480 532 498 501 502 NA NA NA
54 564 NA 460 943 507 499 NA NA NA
55 216 NA 532 941 509 NA NA NA NA
56 389 NA 490 693 NA NA NA NA NA
57 490 NA 488 985 NA NA NA NA NA
58 772 NA 456 NA NA NA NA NA NA
59 390 NA 532 NA NA NA NA NA NA
60 264 NA 460 NA NA NA NA NA NA
61 269 NA 532 NA NA NA NA NA NA
62 877 NA NA NA NA NA NA NA NA
63 755 NA NA NA NA NA NA NA NA
私は各変数で操作を実行しています。 まず、私は、各変数の昇順で、単一のベクター中のデータフレームをカット:
a1=dat0[order(dat0$V1),"V1"]
a2=dat0[order(dat0$V2),"V2"]
a3=dat0[order(dat0$V3),"V3"]
a4=dat0[order(dat0$V4),"V4"]
a5=dat0[order(dat0$V5),"V5"]
a6=dat0[order(dat0$V6),"V6"]
a7=dat0[order(dat0$V7),"V7"]
a8=dat0[order(dat0$V8),"V8"]
a9=dat0[order(dat0$V9),"V9"]
次に、私はNAを削除します。
lqavg.1 lqavg.2 lqavg.3 lqavg.4 lqavg.5 lqavg.6 lqavg.7 lqavg.8 lqavg.9
1 224.6667 351.5385 463.1333 175.5714 491.3846 498 347.9231 127.25 462.3333
:
a1=a1[!is.na(a1)]
a2=a2[!is.na(a2)]
a3=a3[!is.na(a3)]
a4=a4[!is.na(a4)]
a5=a5[!is.na(a5)]
a6=a6[!is.na(a6)]
a7=a7[!is.na(a7)]
a8=a8[!is.na(a8)]
a9=a9[!is.na(a9)]
最後に、私があります(最初の変数のコードの下)
le.1=seq(1:length(a1))
fr.1=le.1/length(a1)
df.1=data.frame(a1,le.1,fr.1)
lq.1=df.1[fr.1<=0.25,]
lqavg.1=mean(lq.1$a1)
最終結果を各変数の25%最小値の平均を計算します
目的は、forループを作成するか、各変数のコードを記述せずにこれを行う関数を見つけることです。親切・バーカーによって提案された機能を持つ
、私が取得:
> apply(dat0, 2, function(x) mean(x[x <= quantile(x, 0.25, na.rm = TRUE)], na.rm = TRUE))
V1 V2 V3 V4 V5 V6 V7 V8 V9
230.3750 353.3571 467.2778 184.2667 491.5000 498.0000 347.9231 139.8462 463.0769
> apply(dat0, 2, function(x) mean(x[x < quantile(x, 0.25, na.rm = TRUE)], na.rm = TRUE))
V1 V2 V3 V4 V5 V6 V7 V8 V9
230.3750 351.5385 463.1333 175.5714 491.5000 498.0000 347.9231 127.2500 463.0769
すべてのヘルプは歓迎です!
ありがとうございます!
ようこそ!問題を実行して、あなたの質問の下で文脈の中で使用しているコードを投稿したときの問題点を列挙してください。誰もが必要なものを手早く手に入れることができます。 Ta! – AER
各変数の長さが異なります。これはデータフレームの場合は不可能です。その中にNAがあるということなのですか? –
不明です。クローズアップをキャスティングするように1時間以内に明確にする要求への応答はさらにありません。 –