Vol.1
前言
在数据分析、科研以及众多需要处理数据的场景中,随机抽样可是个常用又关键的操作呀!最近的数据工作中涉及到一些分组任务,索性整理了现在手边能直接拿来用的随机抽样手段,有需要的同学可以直接抱走使用!
小室今天就来给大家详细展示如何用Python、R语言以及Matlab这三种强大的工具来实现随机抽样,并且附上清晰易懂的代码示例哦,快来一起学习吧!
Vol.2
Python实现随机抽样
Python作为当下最热门的编程语言之一,在数据处理方面有着出色的表现。使用Python的numpy和pandas库可以轻松搞定随机抽样。
简单示例代码
假设我们已经收集好了数据,存储在CSV文件中(文件路径为your_file_path.csv),以下是抽取60个样本并保存到新文件夹下新文件的完整代码哦:
import pandas as pd
import os
import numpy as np
# 文件路径,根据实际情况修改
file_path = 'your_file_path.csv'
# 读取CSV文件数据到DataFrame
data_df = pd.read_csv(file_path)
# 要抽取的样本数量
sample_size = 60
if len(data_df) >= sample_size:
sample = data_df.sample(n=sample_size, replace=False)
# 创建新文件夹用于存放抽取的样本数据,如果文件夹已存在则忽略创建提示
new_folder_path = 'new_sample_folder'
os.makedirs(new_folder_path, exist_ok=True)
# 定义新的CSV文件名,可根据需求修改
new_file_name = 'sample_data.csv'
new_file_path = os.path.join(new_folder_path, new_file_name)
sample.to_csv(new_file_path, index=False)
print(f"已成功抽取 {sample_size} 个样本并保存到 {new_file_path}")
else:
print("数据总量小于要抽取的样本数量,无法按要求抽取")
只需简单几步,就能利用Python强大的库函数实现从文件读取数据、随机抽样以及保存结果啦,是不是很方便呢!
Vol.3
R语言实现随机抽样
R语言在统计分析领域那可是有着举足轻重的地位呀,它自带了许多实用的函数来处理数据抽样相关操作呢。
代码示例呈现
同样是针对CSV文件(假设文件路径为your_file_path.csv)进行读取,然后抽取60个样本保存到新文件夹下的操作,代码如下:
# 文件路径,根据实际情况修改
file_path <- "your_file_path.csv"
# 读取CSV文件数据到数据框(data.frame)
data <- read.csv(file_path)
# 要抽取的样本数量
sample_size <- 60
if (nrow(data) >= sample_size) {
sample <- data[sample(1:nrow(data), sample_size, replace = FALSE), ]
# 创建新文件夹用于存放抽取的样本数据,如果文件夹已存在则忽略创建提示
dir.create("new_sample_folder", showWarnings = FALSE)
# 定义新的CSV文件名,可根据需求修改
new_file_name <- "sample_data.csv"
new_file_path <- file.path("new_sample_folder", new_file_name)
write.csv(sample, new_file_path, row.names = FALSE)
print(paste("已成功抽取", sample_size, "个样本并保存到", new_file_path))
} else {
print("数据总量小于要抽取的样本数量,无法按要求抽取")
}
用R语言实现起来也是条理清晰,通过内置的函数就可以顺利完成抽样并保存工作啦,特别适合熟悉R语言语法的小伙伴哦。
Vol.4
Matlab实现随机抽样
Matlab在工程、数学建模等领域应用广泛,对于随机抽样它也有着简洁高效的实现方式。
具体代码展示
如果有一份CSV文件(文件路径设为your_file_path.csv)的数据需要进行随机抽样,抽取60个样本保存到新文件夹的代码如下:
% 指定CSV文件路径,替换成你实际的文件路径
file_path = 'your_file_path.csv';
% 使用readtable函数读取CSV文件数据到表格(table)类型变量中
data_table = readtable(file_path);
% 获取数据总行数
total_rows = height(data_table);
% 设定要抽取的样本数量
sample_size = 60;
if total_rows >= sample_size
% 使用randperm函数生成随机排列的索引,用于抽样
random_indices = randperm(total_rows, sample_size);
% 根据随机索引抽取样本
sample_table = data_table(random_indices, :);
# 创建新文件夹用于保存样本数据(如果文件夹已存在会报错,可按需调整错误处理方式)
new_folder_path = 'new_sample_folder';
mkdir(new_folder_path);
# 定义新的CSV文件名,可自行修改
new_file_name = 'sample_data.csv';
new_file_path = fullfile(new_folder_path, new_file_name);
% 将抽取的样本数据保存到新的CSV文件中
writetable(sample_table, new_file_path);
disp(['已成功抽取 ', num2str(sample_size), ' 个样本并保存到 ', new_file_path]);
else
disp('数据总量小于要抽取的样本数量,无法按要求抽取');
end
通过Matlab的相关函数配合,我们可以很流畅地完成整个随机抽样流程,而且代码可读性也很不错哦。
总结:
无论你是Python爱好者、R语言的忠实用户,还是Matlab的熟练使用者,在面对随机抽样这个任务时,都能在各自熟悉的语言环境中找到合适的方法去实现它呀。希望今天分享的这些代码示例能帮助大家在实际的数据处理工作中更加得心应手哦!如果觉得有用,别忘了点赞、转发分享给更多有需要的小伙伴呀!
#数据分析 #随机抽样 #Python #R语言 #Matlab
PSYCH
统计自习室
PSYCH统计实验室
通知公告
点击文字,了解寒假培训详情
寒假培训详情介绍
感兴趣的朋友请扫描下方的二维码报名,一起学习吧!
网络分析课程目前开放视频课啦!
单次课200元/讲(学生),250元/讲(非学生)
共有四讲内容:
①横断面网络分析简介与基础
②网络分析与因子分析
③交叉滞后网络分析
④时间序列网络分析
购买后开放视频权限14天,可多次申请。
并赠送所有课程相关资料(无PPT)
如果想申请购买,请联系M18812507626
更多资讯
关注我们
文稿:Wink
排版:Peruere
责编:Wink
审核:摘星
本文由“Psych统计自习室”课题组原创,欢迎转发至朋友圈。如需转载请联系后台,征得作者同意后方可转载。