У меня есть следующий фрейм данных:
df<-structure(list(species = structure(c(1L, 1L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L), .Label = c("a", "b", "c"), class = "factor"),
sample1 = c(1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L), sample2 = c(1L,
1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L), sample3 = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), class = "data.frame", row.names = c(NA,
-10L))
Здесь дублируются значения столбца видов. 1/0 указывает на присутствие и отсутствие.
Для каждого образца я хочу подсчитать наличие повторяющихся видов при разном процентном значении. Например, допустим, мой процент отсечения равен 80. Количество дубликатов в a равно 2. 80% от 2 составляет 1,6 ~ 2 (ближайшее целое число). Точно так же количество дубликатов в b равно 5. 80% от 5 равно 4. Количество дубликатов в c равно 3. 80% от 3 составляет 2,4 ~ 2.
В каждом дубликате, если количество образцов (сумма единиц) больше или равна 80%, я напишу вид в образце.
Окончательный результат будет:
out_df<-structure(list(sample1 = structure(c(1L, 1L, 2L), .Label = c("0",
"c"), class = "factor"), sample2 = structure(c(2L, 1L, 1L), .Label = c("0",
"a"), class = "factor"), sample3 = c(0L, 0L, 0L)), class = "data.frame", row.names = c(NA,
-3L))