【问题标题】:Data Subsetting数据子集
【发布时间】:2021-01-07 13:23:56
【问题描述】:

您能帮我在 r-studio 中找到更好的方法吗? 随机选择 50% 的 mtcars 数据集而不进行替换,并将其命名为 mtcars 50。

要查找:从 mtcars50 数据集中,编写命令以仅选择 hp 大于 150 的观察值?

subset(mtcars50, mtcars50$hp>150)

我已经尝试过以下操作:

sample_frac(mtcars, 0.50, replace = FALSE) 
#To select 50% of the mtcars dataset

mtcars50<-sample_frac(mtcars, 0.50, replace = FALSE) 

我不确定这是否正确,但我这样做是为了命名新数据集。

但是当我运行下面的代码从 mtcars50 数据集中仅选择 hp 大于 150 的观察值时,其输出中的某些变量不包含在 mtcars50 数据集中。我假设我运行的代码创建了另一个子集,并从那里选择了观察结果。

subset(mtcars50, mtcars50$hp>150)

如果这有点令人困惑,我很抱歉。但我希望你能帮助我解决我的问题。非常感谢。

sample_frac(mtcars, 0.50, replace = FALSE)
mtcars50<-sample_frac(mtcars, 0.50, replace = FALSE)
mtcars50<-sample_frac(mtcars, 0.50, replace = FALSE)

【问题讨论】:

  • 您能否尝试编辑您的帖子以清楚地显示您正在运行的代码(使用三个连续的反引号)、您得到什么输出以及您希望得到什么输出?并且请不要将输出的代码或结果显示为图像——当然,除非它是图像。
  • 我不清楚你的问题是什么。在第二张图片的上半部分,似乎所有列出的汽车都适当地高于 150 马力,它们是来自完整 mtcars 数据集的采样部分。您对subset(mtcars50, mtcars50$hp&gt;150) 的结果有何期待?
  • “其输出中的某些变量未包含在 mtcars50 数据集中” - 您认为缺少哪些变量?我在您显示的所有输出中计算了行名 + 11 个变量。输出的总宽度不同,因为某些子集的行名没有其他子集那么长。
  • 您好,欢迎来到 SO!我有你的问题。实际上,当您采样和存储它时,您会得到不同的结果,因为 R 每次都选择了不同的随机种子。请参阅我的答案以获得解释

标签: r subset sample random-seed


【解决方案1】:

编辑

我明白了,您所面临的问题是因为您每次都在处理不同的随机样本。设置随机种子,您将不会遇到此问题。见


set.seed(1)
sample_frac(mtcars, 0.50, replace = FALSE) 

                  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Pontiac Firebird 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Hornet 4 Drive   21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Duster 360       14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Mazda RX4        21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag    21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
AMC Javelin      15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Merc 280C        17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SLC      15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Fiat 128         32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic      30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Ford Pantera L   15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Toyota Corona    21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Merc 280         19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Volvo 142E       21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Toyota Corolla   33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Ferrari Dino     19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6

# now filtering part

set.seed(1)

mtcars50<-sample_frac(mtcars, 0.50, replace = FALSE)

subset(mtcars50, mtcars50$hp>150)

                  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Pontiac Firebird 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Duster 360       14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 450SLC      15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Ford Pantera L   15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Ferrari Dino     19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6

但是,如果不设置种子,您可能会获得查看和存储的不同数据集。请参阅

> sample_frac(mtcars, 0.50, replace = FALSE) 
                    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Merc 230           22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Cadillac Fleetwood 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Toyota Corona      21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Hornet Sportabout  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Volvo 142E         21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Pontiac Firebird   19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Merc 450SLC        15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Ford Pantera L     15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Porsche 914-2      26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Mazda RX4 Wag      21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Merc 280           19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 450SE         16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Maserati Bora      15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Mazda RX4          21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Datsun 710         22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Valiant            18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1


> mtcars50<-sample_frac(mtcars, 0.50, replace = FALSE)
> subset(mtcars50, mtcars50$hp>150)
                    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Cadillac Fleetwood 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Merc 450SE         16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Ferrari Dino       19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Pontiac Firebird   19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Camaro Z28         13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Duster 360         14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Maserati Bora      15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

注意子集中不存在 hp = 175 的 Hornet sportabout

希望这能消除疑虑

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2010-12-28
    • 2021-06-09
    相关资源
    最近更新 更多