Аргумент subset
функции subset
ожидает логическое выражение, то есть вы можете выбирать из строк, упоминая TRUE/FALSE
для каждой строки.
Если вы хотите повторить выделение, тогда можно использовать which
. Который возвращает row-number
, который может быть реплицирован. Следовательно, опция может быть такой:
set.seed(12)
xd <- data.frame(id = sort(sample(3,20, rep=TRUE)), y = rnorm(20))
fxd <- xd[rep(which(xd$id %in% c(1,2)), each = 2),]
fxd
# id y
# 1 1 -0.77771958
# 1.1 1 -0.77771958
# 2 1 -1.29388230
# 2.1 1 -1.29388230
# 3 1 -0.77956651
# 3.1 1 -0.77956651
# 4 1 0.01195176
# 4.1 1 0.01195176
# 5 1 -0.15241624
# 5.1 1 -0.15241624
# 6 1 -0.70346425
# 6.1 1 -0.70346425
# 7 1 1.18887916
# 7.1 1 1.18887916
# 8 1 0.34051227
# 8.1 1 0.34051227