Так что я работаю над кодом, связанным с восстановлением местных видов. К концу этого фрагмента кода у меня есть столбец с именем «count_species_greater_5», в котором подсчитывается количество нативных видов, появившихся как минимум 5 раз за polygon_ID. Далее я хочу перечислить эти виды (которые являются именами столбцов) в новом столбце. См. Таблицу ниже, чтобы узнать, как будет выглядеть столбец (сделано в Excel, «# Species ≥ 5%» совпадает с моим столбцом «count_species_greater_5», «Species ≥ 5%» - это то, что я пытаюсь воссоздать в R). Как мне получить этот последний столбец, в котором будут перечислены названия видов с более чем 5 попаданиями?
Обратите внимание, мой код приведен ниже, и я знаю, что это не самый гладкий или чистый код, но он пока работает для достижения моих целей. Кроме того, по некоторым причинам rowums рассматривал «polygon_id» как число и добавлял его в итог для столбца видов> 5, поэтому я использовал «as.factor», чтобы он не учитывался, но я не уверен, что это был правильный подход, хотя он работал, чтобы получить результаты, которые я хотел. Я с радостью приму любой совет по поводу лучшего способа сделать это или лучшего способа кодирования любого из этого. Спасибо!
Я относительно новичок в этом, и, хотя я гуглил это, я не мог понять, как прикрепить свои данные, я действительно смотрел на эту ссылку , но я не понял этого , Я не знаю, возможно ли ответить на этот вопрос без моих данных, поэтому, если у кого-то есть совет, как загрузить CSV, дайте мне знать.
![enter image description here](https://i.stack.imgur.com/JHKV6.png)
AC_OCWR_Data <- read_excel("AC_OCWR_Data.xlsx")
data <- clean_names(AC_OCWR_Data)
diversity1 <- ac_data %>%
dplyr::filter(data_type == "T.PI") %>%
select(transect, polygon_id, native_non_native, species_code) %>%
group_by(polygon_id, transect, native_non_native) %>%
count(species_code)
colnames(diversity1)[5] <- c("total")
diversity1$perc_cover <- diversity1$total/50*100
diversity1_native <- diversity1 %>%
dplyr::filter(native_non_native == "Native")
diversity2 = dcast(diversity1_native, polygon_id + transect ~ species_code, value.var = "perc_cover")
diversity2 <- aggregate(diversity2[3:45],list(diversity2$polygon_id), mean, na.rm=TRUE)
names(diversity2)[1]<-paste("polygon_id")
diversity2$polygon_id <- as.factor(diversity2$polygon_id)
diversity2 <- diversity2 %>%
mutate(count_species_greater_5 = rowSums(diversity2 > 5, na.rm = TRUE))
View(diversity2)
Разнообразие2 выглядит следующим образом: ![enter image description here](https://i.stack.imgur.com/85CmH.png)
по предложению Майка, здесь это разнесение 2 вывод:
structure(list(polygon_id = structure(1:13, .Label = c("5M BUFFER",
"OW-M1", "OW-M2", "OW-M3", "OW-M4", "OW-M5", "OW-M7", "OW-U1",
"OW-U11", "OW-U2", "OW-U3", "OW-U6", "Weedy Control"), class = "factor"),
ACMGLA = c(2, NaN, 2, NaN, NaN, NaN, NaN, 2, NaN, 2, 2, 2,
4), AMBPSI = c(NaN, NaN, 2, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN), AMSMEN = c(2, 2, NaN, NaN, NaN, NaN,
8, NaN, NaN, NaN, NaN, NaN, NaN), ARTCAL = c(26, 12, 6, 8,
6, NaN, 4, NaN, 4, 2, 12, 38, 4), ARTDOU = c(2, 6, 2, 2,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), ARTDRA = c(11.3333333333333,
34, 18, 62, NaN, 12, NaN, 14, 12, 34, 26, NaN, 32), ATRCAN = c(NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 6),
BACSAL = c(4, NaN, NaN, 4, NaN, 12, 12, 34, 22, NaN, NaN,
NaN, 14.6666666666667), CALMAC = c(4, NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), CORRIG = c(NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, 6, NaN, NaN, NaN, NaN),
CROCAL = c(NaN, NaN, NaN, 2, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN), CRYINT = c(NaN, 6, NaN, NaN, NaN, NaN, 4,
NaN, NaN, NaN, NaN, NaN, NaN), CUCFOE = c(NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 2), DEIFAS = c(6,
2, NaN, NaN, NaN, NaN, 32, NaN, NaN, NaN, NaN, NaN, NaN),
DIPAUR = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, 2, NaN), ELYCON = c(NaN, NaN, NaN, NaN, 2, NaN, 16,
NaN, NaN, NaN, 36, NaN, NaN), ENCCAL = c(NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, 8, 12, NaN, 4), ERIFAS = c(44, 16,
50, 26, 58, 62, 32, 22, 20, 74, 14, 42, NaN), ESCCAL = c(NaN,
6, 2, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN),
EUCCHR = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
2, 2, NaN), EUCCRY = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN,
2, NaN, 2, NaN, NaN, NaN), GALANG = c(2, NaN, 4, NaN, NaN,
2, NaN, NaN, NaN, 2, NaN, 2, NaN), GALAPA = c(NaN, NaN, NaN,
2, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), HELANN = c(NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 2, NaN, NaN),
ISOMEN = c(8, NaN, NaN, NaN, NaN, NaN, 4, NaN, NaN, NaN,
4, 10, NaN), MALFAS = c(16, 4, NaN, NaN, 10, 6, 8, NaN, 2,
NaN, NaN, 2, NaN), MALLAU = c(12, NaN, NaN, NaN, 2, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN), MALSAX = c(4, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), MARMAC = c(NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 3),
OPULIT = c(NaN, NaN, NaN, NaN, NaN, NaN, 8, NaN, NaN, NaN,
4, NaN, NaN), PHACIC = c(14, 26, 42, NaN, NaN, 6, NaN, 8,
NaN, 4, 6, NaN, NaN), PHAPAR = c(NaN, NaN, 2, NaN, NaN, NaN,
NaN, NaN, NaN, NaN, 4, NaN, NaN), QUEARG = c(NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 32, NaN), RAFCAL = c(2,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN
), RHUINT = c(6, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN), SALLAE = c(NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, 8), SALMEL = c(NaN, NaN,
NaN, 10, 4, 2, 8, 2, 12, NaN, 10, 12, 10), SAMNIG = c(NaN,
8, 40, NaN, 8, 6, NaN, 10, 6, NaN, 2, NaN, NaN), SOLDOU = c(NaN,
NaN, 4, NaN, NaN, NaN, NaN, 4, NaN, NaN, NaN, NaN, NaN),
SOLSPP = c(2, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN), STIPUL = c(4, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN), TOXDIV = c(NaN, NaN, NaN,
NaN, NaN, NaN, 4, NaN, NaN, NaN, NaN, NaN, NaN), XANSTR = c(NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 2),
count_species_greater_5 = c(9, 8, 5, 4, 4, 6, 8, 5, 6, 3,
7, 5, 5)), class = "data.frame", row.names = c(NA, -13L))