У меня есть фрейм данных с 2 столбцами, где второй столбец может иметь двоичные значения (1 или 2).Я хотел бы удалить случайные кластеры строк, где второй столбец всегда равен 2.
пример:
df1<-data.frame(x=seq(10),y=c(1,2,2,1,2,2,1,2,1,2))
[1] df1
x y
1 1 1
2 2 2
3 3 2
4 4 1
5 5 2
6 6 2
7 7 1
8 8 2
9 9 1
10 10 2
, учитывая 2 в качестве размера кластера, есть два кластера: A: строки 2 и3 и B: строки 5 и 6. Я хотел бы удалить 50% кластеров случайным образом, что означает удаление строк 2 и 3 или 5 и 6
Желаемый результат:
x y
1 1 1
4 4 1
5 5 2
6 6 2
7 7 1
8 8 2
9 9 1
10 10 2
Я пыталсяэто но не работает:
cluster_size=2
percentage_clusters_to_remove= 0.5
clusters<-which(df1$y==rep(cluster_size,2))
remove<-sample(clusters, length(clusters)*percentage_clusters_to_remove)
df2<-df1[-c(remove),]