Я пытаюсь вычислить различия в SEX для каждого вида в моем df по 5 переменным (WING; WINGPRI; WEIGHT, BEAK и TARSUS) Я пробовал десятки кодов (я начинающий) и продолжаю получатьошибки или коды не дают мне желаемого результата и т. д.
Это примерно так же близко, как я получил:
library(tidyverse)
library(broom)
df %>%
select(SPECIES, SEX, WING, WINGPRI, WEIGHT, BEAK, TARSUS) %>%
gather(key = variable, value=value, -SEX, -SPECIES) %>%
group_by(SEX, SPECIES, variable) %>%
summarise(value = list(value)) %>%
na.rm=TRUE %>%
tibble::rowid_to_column() %>%
spread(SPECIES, value) %>%
group_by(variable) %>%
mutate(p_value = t.test(unlist("F"), unlist("M"))$p.value,
t_value = t.test(unlist("F"), unlist("M"))$statistic)
Но после устранения многих ошибок я не могу получитьмимо этого Error: is.data.frame(df) is not TRUE
Любые идеи о том, как решить этот код или совершенно другой код, который будет делать то, что я пытаюсь сделать, высоко ценится
> dput(sample)
structure(list(RING = c("A264874", "A432586", "O92477", "B9124",
"C95571", "A395011", "C88213", "C58443", "A95422", "C58409"),
SPECIES = c("CARDUELIS CARDUELIS", "SYLVIA ATRICAPILLA",
"ESTRILDA ASTRILD", "ALCEDO ATTHIS", "CHLORIS CHLORIS", "FRINGILLA COELEBS",
"SYLVIA ATRICAPILLA", "CHLORIS CHLORIS", "SYLVIA ATRICAPILLA",
"PARUS MAJOR"), SEX = c("U", "M", "F", "F", "F", "F", "F",
"M", "F", "M"), AGE = c(2L, 3L, 3L, 3L, 4L, 2L, 4L, 4L, 6L,
3L), FAT = c(0L, 0L, 0L, NA, 0L, 0L, 0L, 0L, 1L, 0L), WEIGHT = c(148,
185, 85, 32, 225, 20, 245, 22, 197, 19), WING = c(775, 69,
45, 76, 82, 84, 77, 83, 69, 72), WINGPRI = c(58L, NA, 32L,
NA, NA, NA, 57L, 64L, 52L, 54L), BEAK = c(156, 132, 86, NA,
NA, 138, 125, 13, 145, 125), TARSUS = c(148, 199, 146, NA,
NA, 178, 18, 177, 207, 205), BROODPATCH = c(0L, NA, 0L, 0L,
0L, NA, 0L, 0L, 0L, 0L), MUSCLE = c(2L, 3L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L), PROGRAM = c("MAI", "MAI", "MAI", "MIGRA<c7><c3>O",
"PEEC", "MAI", "MAI", "PEEC", "MAI", "MIGRA<c7><c3>O")), .Names = c("RING",
"SPECIES", "SEX", "AGE", "FAT", "WEIGHT", "WING", "WINGPRI",
"BEAK", "TARSUS", "BROODPATCH", "MUSCLE", "PROGRAM"), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))