📌  相关文章
📜  从数据框中获取样本 (1)

📅  最后修改于: 2023-12-03 14:49:24.751000             🧑  作者: Mango

从数据框中获取样本

在数据分析中,我们通常需要从数据框中获取样本进行分析。R提供了多种方法来获取数据框样本。本文将介绍其中的两种方法:samplesubset函数。

sample函数

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函数

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中还有其它方法获取样本。根据具体情况,可以灵活运用。