在R中用random()和row_number()分配随机排名时遇函数未找到错误
解决R中
random()函数找不到的问题 random()不是R基础包或主流数据分析包(包括文章推荐的库)里的函数,这基本是作者的笔误。- 结合你这段分层处理的代码逻辑,最合理的替代是用基础R的
runif()函数(生成0-1之间的均匀分布随机数),修正后的代码如下:
df_mod <- df %>% group_by(is_delayed) %>% mutate(x = runif(n())) %>% ungroup()
- 如果你的目标是生成每组内随机排序的行号(用于后续采样),可以改用
sample.int()实现:
df_mod <- df %>% group_by(is_delayed) %>% mutate(x = sample.int(n())) %>% ungroup()
- 要是你最终目的是做分层随机采样,直接用dplyr的
slice_sample()更简洁高效,完全不用手动生成随机值:
# 示例:每个is_delayed分组采样1000行 df_sample <- df %>% group_by(is_delayed) %>% slice_sample(n = 1000) %>% ungroup()
- 若你坚持怀疑作者用了某个小众包的
random(),可以安装并加载sos包后运行findFn("random")搜索,但这种概率极低,优先按笔误处理。
内容的提问来源于stack exchange,提问作者Pedro Rizzi de Oliveira
相关产品推荐
相关产品推荐

