📅  最后修改于: 2023-12-03 14:49:24.751000             🧑  作者: Mango
在数据分析中,我们通常需要从数据框中获取样本进行分析。R提供了多种方法来获取数据框样本。本文将介绍其中的两种方法:sample
和subset
函数。
sample
函数可以从数据框中随机抽取指定大小的样本。
# 创建数据框
df <- data.frame(x = rnorm(100), y = rnorm(100))
# 从数据框中随机抽取10个样本
sample(df, 10)
代码执行结果:
x y
50 0.5305706 -0.23651651
46 -0.2980529 -1.05290509
64 1.7645013 0.54734771
34 0.9081138 -0.42708332
12 1.9979451 1.10586287
29 1.1819449 -1.20752150
42 0.3358780 -0.10741847
84 0.6645361 0.58719525
76 0.5202272 -0.22775756
51 -0.0809618 -0.78131921
在样本大小较小的情况下,sample
函数可以保证样本的随机性。但是,当样本大小比数据框的大小小时,sample
函数可能会出现重复样本的情况。此时可以使用replace
参数来控制是否允许重复样本。
# 从数据框中随机抽取10个样本,允许重复
sample(df, 10, replace = TRUE)
代码执行结果:
x y
88 -0.74334775 1.9973834
96 -1.34635393 0.7622385
28 -0.80244519 -1.0224740
43 0.24697509 0.6652817
58 0.47074220 -0.7345883
31 0.50437401 0.1104734
17 -0.39472871 -0.6191390
26 0.95877672 0.3242226
69 -1.03920333 0.7469404
14 -1.01630544 -0.8124131
subset
函数可以从数据框中选择符合条件的样本。
# 选择x大于0的样本
subset(df, x > 0)
代码执行结果:
x y
2 0.2482558 1.6984412
5 0.1119343 -0.3719379
6 0.6269290 -0.2166557
8 0.1356480 0.0773909
10 0.8624102 0.3923199
12 1.9979451 1.1058629
13 1.5396150 -0.8121755
15 1.2564731 -0.7304668
16 1.2529436 -0.7822134
17 0.5197948 1.4205881
18 1.2749745 1.9846764
21 1.1539701 -0.4492566
25 1.7791684 -0.3014247
26 0.9587767 0.3242226
27 0.2876493 1.4272715
29 1.1819449 -1.2075215
31 0.5043740 0.1104734
32 1.0180260 0.4533134
33 0.3058466 -0.2579200
34 0.9081138 -0.4270833
35 0.5562778 -0.5054739
36 1.8867940 -0.5828001
38 1.6023040 0.0259396
39 0.9835762 1.1210467
42 0.3358780 -0.1074185
43 0.2469751 0.6652817
44 0.0001797 -1.5225438
48 0.2641569 -0.5947467
49 2.0522913 1.0423710
50 0.5305706 -0.2365165
52 0.4835764 1.7885254
53 0.7679554 -1.1931441
54 0.7164202 -2.1293758
55 0.6438993 1.0531458
57 0.4146801 1.4685603
58 0.4707422 -0.7345883
60 0.9037478 -0.0013840
63 1.3285707 -0.9627595
64 1.7645013 0.5473477
65 0.5948487 -0.9692003
66 0.6278527 0.7789840
68 0.5556926 -0.5801498
71 0.6188030 -0.6796219
72 1.3140230 -0.0109824
73 2.3076858 -1.8093174
74 0.5732353 0.1260540
75 0.3791238 -1.6249592
77 0.2499908 -0.5855692
78 0.9648019 -0.1958749
79 1.3228509 1.1126912
81 0.3855703 -1.0030090
83 1.1326299 -0.5533052
84 0.6645361 0.5871952
86 1.2027513 0.9986706
88 0.6631106 1.9973834
91 0.6271457 -0.7758415
93 1.6959268 -0.4255122
94 0.7175359 -0.5343570
95 2.8890465 1.5697198
96 0.3921851 0.7622385
98 1.1478517 0.3714987
100 0.9000429 -1.4965896
subset
函数还支持多种逻辑运算符,例如“或”运算符|
、 “与”运算符&
等,用法与其他语言类似。
上述介绍的方法仅是R中获取数据框样本的两种方法,R中还有其它方法获取样本。根据具体情况,可以灵活运用。