R中按国家进行的抽样观察

时间:2020-04-29 18:25:46

标签: r tidyr

让我们说我有一个数据帧(df),它由4000个观察结果组成,其结构如下

Country | Date | Log_GDP | Log_DMSP | Log_Population. 

每个国家/地区在面板中多次出现在数据框中。我将如何从此数据帧中抽样200个随机国家,以便将它们输入到看起来像这样的lm()函数中?

lm(Log_GDP ~ 1 + Log_Population + Log_DMSP+as.factor(Date),data=sampled_df)

2 个答案:

答案 0 :(得分:1)

您可以在sample函数上使用

rand_countries <- sample(unique(df$Country), size = 200, replacement = FALSE), ] 

然后从数据框中选择这些值

sampled_df <- df[df$Country %in% rand_countries, ]

答案 1 :(得分:0)

我认为,您正在谈论分层抽样。

在您的情况下,您需要在“国家”列上进行分层抽样。

请参考:

How to create a stratified sample by state in R