r语言:编写函数实现以下功能:随机抽取数据框的m个样本。
时间: 2024-12-04 08:24:44 浏览: 22
在R语言中,你可以使用`sample()`函数来随机抽取数据框(data frame)中的行作为样例。下面是一个简单的例子,演示如何创建一个函数`random_sample`来实现这个功能:
```r
# 定义函数 random_sample
random_sample <- function(df, m) {
# 检查输入是否为数据框
if (!is.data.frame(df)) {
stop("Input must be a data frame.")
}
# 检查抽样数是否大于0且小于等于数据框行数
if (m < 1 || m > nrow(df)) {
stop("Sampling size 'm' should be between 1 and the number of rows in the data frame.")
}
# 随机选择指定数量的行
sampled_df <- df[sample(nrow(df), m, replace = FALSE), ]
return(sampled_df)
}
# 使用示例
df_example <- data.frame(col1 = 1:10, col2 = letters[1:10])
random_subset <- random_sample(df_example, 5)
```
在这个函数中,`nrow(df)`获取数据框的行数,`sample(nrow(df), m, replace = FALSE)`用于从所有行中不重复地随机选取m个元素。如果需要允许重复抽取,可以将`replace = FALSE`改为`replace = TRUE`。
阅读全文