自学R语言遇阻:维也纳酒店数据集目录配置与抽样任务求助
维也纳酒店数据集抽样任务分步解决方案
问题说明
自学《Data Analysis for Business, Economics, and Policy》时,卡在第一章维也纳酒店数据集抽样任务:
- 无法配置
data_dir,不知如何获取set-data-directory.R - 自行编写的代码无法运行,无法完成任务:抽取25、50、200样本量的样本,计算价格均值并与全数据集对比,重复三次后分析样本量对均值的影响。
第一步:解决数据集加载问题
无需纠结set-data-directory.R,直接通过以下两种方式加载数据集:
方式1:本地文件加载(修正你的代码)
你之前的代码未将读取的文件赋值给变量df,导致后续无法调用数据,修正后:
# 加载核心工具包 library(tidyverse) # 设置工作目录(替换为你的文件实际路径) setwd("C:/Users/sha03/Desktop/R/intro/data/da_case_studies/") # 读取本地CSV文件并赋值给df df <- read.csv("hotels-vienna.csv") # 验证数据加载成功 summary(df) glimpse(df)
方式2:直接读取在线数据集
如果本地没有文件,直接读取教材提供的数据集:
library(tidyverse) # 读取在线数据集 df <- read_csv("https://osf.io/y6jvb/download") # 验证数据加载成功 summary(df) glimpse(df)
第二步:完成抽样与均值计算任务
编写代码自动完成三次重复抽样、均值计算与对比:
# 计算全数据集的价格均值(排除缺失值) full_dataset_mean <- mean(df$price, na.rm = TRUE) cat("全数据集酒店价格均值:", round(full_dataset_mean, 2), "\n\n") # 定义需要测试的样本量 sample_sizes <- c(25, 50, 200) # 重复抽样次数 repeat_count <- 3 # 循环执行抽样与计算 for (size in sample_sizes) { cat("===== 样本量:", size, "=====\n") for (i in 1:repeat_count) { # 抽取无放回随机样本 sampled_data <- sample_n(df, size = size, replace = FALSE) # 计算当前样本的价格均值 sample_mean <- mean(sampled_data$price, na.rm = TRUE) # 计算与全数据集均值的差值 mean_diff <- sample_mean - full_dataset_mean cat("第", i, "次抽样均值:", round(sample_mean, 2), ",与全均值差值:", round(mean_diff, 2), "\n") } cat("\n") }
第三步:结果分析
运行代码后你会观察到:
- 小样本(25):每次抽样的均值波动极大,与全数据集均值的差值绝对值通常较大
- 中等样本(50):波动幅度明显缩小,均值更接近全数据集水平
- 大样本(200):均值几乎稳定在全数据集均值附近,波动极小
结论:样本量越大,抽样均值的代表性越强,波动越小,越接近总体真实均值。
内容的提问来源于stack exchange,提问作者shei003
相关产品推荐
相关产品推荐

