Выберите строки с двумя различными вероятностями в пределах фрейма данных R - PullRequest
1 голос
/ 30 октября 2019

У меня есть симуляция, в которой я хочу генерировать строки в соответствии с заданным условием и вероятностью.

Я генерирую данные с помощью этого кода:

library(tidyr)
df=data.frame(replicate(6,sample(1:10,1000,rep=TRUE)))

Теперь я хочу выбратьстроки с rowMeans больше или равным 6 с вероятностью 0,8 и строки с rowMeans <6 с вероятностью 0,2. Я использую этот код для выбора образца с n = 30 из исходного df со строками со значением rowmean> 6:

library(fBasics)
xsample=pop.dataL %>% dplyr::filter(rowSkewness(pop.dataL)>1.5) %>% 
dplyr::sample_n(30, weight=c(2,8), replace=T)

, но, конечно, я получаю ошибку " неверное число вероятностей "... потому что мне нужен вектор с весами с равными числами nrow (df) ... просто не могу понять ...

Любая помощь будет оценена. ..

Спасибо!

1 Ответ

2 голосов
/ 30 октября 2019

Используйте ifelse() для распределения вероятностей.

df %>%
  sample_n(30, replace = T, weight = ifelse(rowMeans(df) >= 6, 8, 2))
...