Пример сгруппированных строк из фрейма данных / таблицы в R - PullRequest
1 голос
/ 25 января 2020

У меня есть следующий набор данных

df = data.frame("Country" = rep(sample(c("USA", "Germany", "Japan", "Slovakia", "Togo")),2))
df$Value = sample(c(1:1000), 10) 

Теперь я хочу выбрать случайную выборку из этой ДФ, скажем, из 3 стран. Это означает, что я хочу иметь все 6 строк, относящихся к 3 странам. Поэтому каждый раз, когда я выбираю выборку из переменной страны, я всегда получаю все (здесь две) строки, которые относятся к этой стране.

Как я могу это сделать, следующий код не работает все время, возвращая иногда Только 2 страны

df %>% filter(Country %in% sample(Country, 3))

Спасибо!

1 Ответ

2 голосов
/ 25 января 2020

Мы можем заключить в unique, чтобы удалить дубликаты из «Страны», и использовать его в sample, чтобы быть уверенным, что всегда будет 3 sample «Страна»

library(dplyr)
df %>% 
   filter(Country %in% sample(unique(Country), 3))
...