【发布时间】:2016-02-11 07:13:32
【问题描述】:
我有一个数据框:
> class(dataset)
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
> dim(dataset)
[1] 64480 39
我想从中采样 50.000 个样本
> dataset %>% dplyr::sample_n(50000)
但一直给我错误
错误:样本大小 (50000) 大于总体大小 (1)。是否要替换 = TRUE?
但是例如有效:
> dim(dataset[1] %>% dplyr::sample_n(50000))
[1] 50000 1
那么为什么我的人口规模为(1) - 这与分组有关吗?
【问题讨论】:
-
请提供一个可重现的例子。 dplyr 输出有关您的数据的错误,因此要回答我们需要查看您的数据的问题(样本或虚构示例)。
-
这很可能是关于分组的,因为你有
"grouped_df"。尝试取消组合并运行相同的代码。 -
是的,它可能与分组有关。正如您从
class(dataset)的输出中看到的那样,您的数据当前已分组,并且某些组的观察结果可能太少而无法在不替换的情况下对 50000 进行采样。试试dataset %>% ungroup() %>% dplyr::sample_n(50000) -
试过了。做到了 !谢谢!