Related
I have data of fish stomach contents (prey items).
In my original df, each fish (with a unique FID) had multiple rows(observations) - one row per unique prey taxon found. For example, if fish #10 had both daphnia and goby in its stomach, there were two rows for that same fish (one row with # of daphnia in that fish's stomach and one row for # of goby in that same stomach); if the fish only had daphnia in their stomach then they had one row; and so on.
I have converted my data from long to wide format to have one observation per row (one unique fish per row).
I am trying to calculate the proportion of empty stomachs by month (when totalnumPrey == 0).
Reproducible data (shortened; complete data has 488 observations):
structure(list(id = c("1001_28", "1001_29", "1001_30", "1001_31",
"1001_32", "1001_33", "1001_34", "1001_35", "1023_3", "614_1",
"614_3", "616_1", "616_3", "616_4", "616_5", "616_6", "824_23",
"824_24", "824_25", "824_26", "824_28", "824_29", "824_30", "824_31",
"824_32", "824_33", "824_35"), CRN = c(1001L, 1001L, 1001L, 1001L,
1001L, 1001L, 1001L, 1001L, 1023L, 614L, 614L, 616L, 616L, 616L,
616L, 616L, 824L, 824L, 824L, 824L, 824L, 824L, 824L, 824L, 824L,
824L, 824L), FID = c(28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L,
3L, 1L, 3L, 1L, 3L, 4L, 5L, 6L, 23L, 24L, 25L, 26L, 28L, 29L,
30L, 31L, 32L, 33L, 35L), ac = c(2L, 2L, 1L, 1L, 1L, 1L, 0L,
0L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L), mm = c(200L, 159L, 117L, 120L, 108L, 103L, 92L,
97L, 104L, 301L, 163L, 85L, 271L, 290L, 330L, 294L, 270L, 260L,
266L, 197L, 195L, 185L, 160L, 157L, 178L, 166L, 149L), gr = c(95,
44, 15.1, 16.1, 11, 10, 6.9, 7.9, 10.9, 418, 62, 6.8, 311, 453,
593, 395, 283, 275, 261, 96, 90, 90, 56, 50, 57, 62, 45.5), catch = c(2L,
2L, 4L, 4L, 4L, 4L, 2L, 2L, 1L, 3L, 3L, 1L, 5L, 5L, 5L, 5L, 15L,
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 14L), Daphnia = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Byths = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
18L, 79L, 71L, 8L, 73L, 0L, 38L, 39L), Chiro.Pupae = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 255L, 7L, 0L, 576L, 590L, 536L, 576L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Empty = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Chiro.Larvae = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 5L, 38L, 0L, 9L, 0L, 0L, 0L), Amphipod = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Isopod = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L), Chironomidae = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L), Hemimysis = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), Copepoda = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Sphaeriidae = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Chiro.Adult = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 74L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), Trichopteran = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), UID.Fish = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Chydoridae = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
200L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Cyclopoid = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Fish.Eggs = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), EggMass = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), Dreissena = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 1L
), Goby = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Eurycercidae = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Hirudinea = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), totalnumPrey = c(0, 0, 0,
0, 1, 0, 0, 0, 200, 262, 81, 0, 576, 595, 536, 582, 0, 0, 0,
19, 84, 110, 9, 82, 0, 38, 40), MONTH = c(11L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 8L, 8L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L), DAY = c(4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 6L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 18L, 18L,
18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L), empty = c("Empty",
"Empty", "Empty", "Empty", "Not_empty", "Empty", "Empty", "Empty",
"Not_empty", "Not_empty", "Not_empty", "Empty", "Not_empty",
"Not_empty", "Not_empty", "Not_empty", "Empty", "Empty", "Empty",
"Not_empty", "Not_empty", "Not_empty", "Not_empty", "Not_empty",
"Empty", "Not_empty", "Not_empty")), row.names = c(NA, -27L), class = c("data.table",
"data.frame"))
I haven't been able to figure out a way to calculate proportion using counts instead of actual values (since I need to count the 0 values by group and not use the actual 0 value to calculate the proportion).
I have tried the following:
example %>%
group_by(empty, MONTH) %>%
summarise(totalnumPrey = n()) %>%
mutate(prop = n / sum(n))
This gives the following error:
Error in `mutate()`:
! Problem while computing `prop = n/sum(n)`.
ℹ The error occurred in group 1: empty = "Empty".
Caused by error in `sum()`:
! invalid 'type' (closure) of argument
I also tried this:
transform(example,
perc = ave(totalnumPrey,
empty,
FUN = prop.table))
but this doesn't give me what I need...
Also this:
example %>%
group_by(MONTH) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
which gives me proportion by month, not what I need (i.e. for June it's doing 127/362 = 0.35)...
I have tried many other ways from examples I found in other SO posts but still can't get what I need.
Is there a way I can calculate the proportion of empty vs non-empty stomachs by month?
I also need to do this for each prey type/taxon. For example, proportion of individual fish that contain "Isopod" and so on for each unique taxon in my data. Presence/absence type of proportions.
I mainly want to do this by month first, but will eventually use other groupings.
When I had the data in long format, I was able to calculate proportion of each prey item within one fish stomach by using:
transform(a,
perc = ave(number,
id,
FUN = prop.table))
data not included here.. but 'number' here being the total count of each unique prey taxa/group per stomach/fish & 'id' unique identifier I created to distinguish between different fish (since there were multiple rows for same fish).
I am happy to clarify anything that is not clear or add additional data if needed.
I have searched online and in SO for a few days but still can't figure this out.
Thank you in advance.
I think this is what you need.
What we need to do is to count the number of times the column empty is equal to "Empty" per each group - so we can do this using sum(empty=="Empty") and then divide by the number of rows in that group n().
library(dplyr)
dat %>%
group_by(MONTH) %>%
summarise(
prop_empty = sum(empty=="Empty")/n(),
prop_not_empy = sum(empty != "Empty")/n()
)
# A tibble: 3 × 3
MONTH prop_empty prop_not_empy
<int> <dbl> <dbl>
1 6 0.143 0.857
2 8 0.364 0.636
3 11 0.778 0.222
I've tried to complete an ANOSIM with data on a study I have carried out but I get multiple errors and i'm not sure how to fix it. Most of the errors are "dissimilarities have 24 observations, but grouping has 23". I'm trying to see the similarity in community structure between multiple samples.
my code so far is
setwd()
#load invertebrate data
Invertebrates<- read.csv(file="Invertebrates.csv",head=TRUE,sep=",")
#install packages
install.packages("vegan")
library(vegan)
#make community matrix
com<-Invertebrates[,2:ncol(Invertebrates)]
m_com<-as.matrix(com)
# group by site
group=Invertebrates[,1]
#ANOSIM
invert.ano<-anosim(m_com,group)
Then I get
Error in anosim(m_com, group) : there should be replicates within groups
Thanks for any help
Invertebrates <- structure(list(Site = structure(c(10L, 14L, 6L, 3L, 24L, 12L, 7L, 18L, 1L, 8L, 15L, 5L, 16L, 23L, 4L, 11L, 21L, 19L, 9L, 13L
), .Label = c("Anax parthenope", "Anisus vortex", "Asellus aquaticus",
"Bathyomphalus contortus", "Bithynia leachii", "Bithynia tentaculata",
"Coenagrion pulchellum", "Corixa punctata", "Dytiscus marginalis",
"Gammarus pulex", "Gyraulus albus", "Haliplus fluviatilis", "Haplotaxis gordioides",
"Ilyocoris cimicoides", "Lymnaea stagnalis", "Lymnaea truncatula",
"Oxygastra curtisii", "Physa fontilnalis", "Piscicola geometra",
"Planorbis cornatus", "Planorbis planorbis", "Radix ovata", "Radix palustris",
"Sialis lutaria"), class = "factor"), Finglesham.Brook.A = c(112L,
1L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Betteshanger.Pond.A = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Betteshanger.Pond.B = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Great.Mongeham.A = c(7L, 0L, 0L, 2L, 2L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Site.7.SS.A = c(6L,
0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Great.Mongeham.B = c(32L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Broad.dike.A = c(0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Broad.dike.B = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), S3.Broad.dike.SS.B = c(14L,
0L, 7L, 6L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Site.6.NS.B = c(65L, 0L, 0L, 2L, 2L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Fowlmead.Lake.A = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Site.7.SS.B = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Fowlmead.lake.B = c(0L,
0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Adelaide.NS.A = c(5L, 0L, 3L, 6L, 2L, 0L, 0L, 0L,
0L, 0L, 2L, 6L, 4L, 1L, 1L, 6L, 4L, 0L, 0L, 0L), Little.Downs.Bridge.B = c(48L,
8L, 0L, 23L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 18L, 0L, 2L, 0L, 1L,
0L, 1L, 0L, 0L), Finglesham.Brook.B = c(78L, 0L, 3L, 15L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L),
Adelaide.SS.A = c(8L, 0L, 0L, 33L, 9L, 0L, 0L, 0L, 0L, 0L,
0L, 12L, 0L, 4L, 19L, 7L, 4L, 0L, 2L, 0L), Adelaide.SS.B = c(4L,
0L, 20L, 9L, 2L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 14L,
0L, 1L, 0L, 0L, 0L), Ham.Fen.SS = c(1L, 0L, 0L, 6L, 3L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
Adelaide.NS.B = c(3L, 0L, 0L, 8L, 0L, 6L, 1L, 0L, 0L, 2L,
0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 1L, 0L), Site.6.NS.A = c(58L,
0L, 0L, 2L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), S3.Broad.dike.SS.A = c(24L, 0L, 0L, 50L,
0L, 0L, 3L, 13L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Little.Downs.Bridge.A = c(10L, 16L, 23L, 46L, 0L,
0L, 2L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 4L, 0L, 5L, 0L, 0L, 0L
)), row.names = c(NA, 20L), class = "data.frame")
If you run
table(Invertebrates$Site)
you will see that there you're grouping variable is not actually grouping anything. That is, there is maximum one observation per group. But ANOSIM requires the data to be grouped.
If I just make up a random grouping variable, like this:
Invertebrates$Group <- sample(c(1,2), nrow(Invertebrates), replace = TRUE)
and rerun your analysis:
Invertebrates$Group <- sample(c(1,2), nrow(Invertebrates), replace = TRUE)
group <- Invertebrates[, "Group"]
invert.ano <- anosim(m_com, group)
It works!
I want to use some basic exploratory commands for my dataset, but can't figure this one out: i want to be able to have the ten (or any other number) most abundant species returned to me based on my data-matrix.
So, species that are present in all sites (rows) end up high in the ranking, species that are present in only one site end up low (and may even be excluded based on the ten most abundant species).
Furthermore, each species has a number that corresponds with its abundacy within the site (row). I also want to be able to get a top ten most abundant species based on abundancy rahter then presence absesence.
Here i used dput to give you a part of my dataset.
structure(list(Hypnum.jutlandicum = c(1L, 0L, 18L, 0L, 18L, 43L,
0L, 0L, 0L, 0L, 0L, 68L, 8L, 0L, 0L, 0L, 0L, 68L), Cladonia.floerkeana = c(0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L,
0L), Dicranum.scoparium = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 2L, 0L, 0L, 0L, 2L, 0L, 0L), Deschampsia.flexuosa = c(0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), Carex.pilulifera = c(1L, 4L, 1L, 3L, 1L, 1L, 2L, 0L, 2L,
0L, 0L, 2L, 2L, 2L, 2L, 1L, 0L, 0L), Polytrichum.commune = c(1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), Calluna.vulgaris = c(43L, 38L, 56L, 68L, 56L, 68L, 38L,
88L, 68L, 38L, 68L, 88L, 38L, 38L, 18L, 8L, 18L, 38L), Danthonia.decumbens = c(1L,
0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L), Genista.pilosa = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Polytrichum.juniperinum = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 3L, 68L, 0L, 3L, 3L, 2L, 2L,
0L, 0L), Micarea.erratica = c(1L, 3L, 4L, 4L, 1L, 1L, 4L, 8L,
18L, 18L, 4L, 3L, 0L, 2L, 3L, 2L, 0L, 4L), Trapelia.coarctata = c(0L,
0L, 4L, 0L, 0L, 0L, 4L, 4L, 8L, 8L, 8L, 2L, 2L, 8L, 0L, 0L, 2L,
4L), Baeomyces.rufus = c(2L, 2L, 1L, 2L, 4L, 1L, 6L, 2L, 3L,
0L, 3L, 8L, 68L, 0L, 0L, 0L, 0L, 0L), Porpidia.crustulata = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 2L, 2L, 0L, 0L, 4L, 1L, 0L, 0L,
0L), Catillaria.chalybeia = c(0L, 0L, 0L, 0L, 0L, 0L, 2L, 2L,
0L, 3L, 3L, 0L, 0L, 2L, 0L, 1L, 0L, 0L), Rhizocarpon.reductum = c(0L,
0L, 0L, 0L, 0L, 0L, 2L, 3L, 0L, 2L, 4L, 1L, 0L, 0L, 2L, 0L, 0L,
0L), Porina.chlorotica = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
2L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 0L), Acarospora.fuscata = c(0L,
0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 3L, 1L, 2L, 0L, 0L, 0L, 0L, 0L,
0L), Dibaeis.baeomyces = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L,
0L, 0L, 3L, 0L, 0L, 2L, 0L, 0L, 0L), Erica.tetralix = c(18L,
2L, 1L, 0L, 31L, 1L, 2L, 3L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 68L), Campylopus.introflexus = c(1L, 38L, 0L, 0L, 1L, 0L,
38L, 18L, 8L, 8L, 0L, 18L, 0L, 38L, 0L, 2L, 0L, 2L), Cladonia.coccifera = c(0L,
4L, 4L, 0L, 1L, 1L, 0L, 0L, 2L, 0L, 0L, 0L, 3L, 0L, 1L, 0L, 0L,
4L), Cladonia.grayi = c(0L, 2L, 1L, 0L, 1L, 1L, 0L, 2L, 2L, 0L,
0L, 2L, 3L, 0L, 0L, 0L, 0L, 0L), Agrostis.vinealis = c(1L, 0L,
1L, 0L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), Cladonia.macilenta = c(0L, 0L, 1L, 0L, 1L, 0L, 0L, 2L, 0L,
0L, 0L, 2L, 2L, 0L, 0L, 0L, 0L, 2L), Polytrichum.piliferum = c(0L,
0L, 18L, 38L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
3L, 0L), Rumex.acetosella = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L), Cladonia.ramulosa = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L), Hypochaeris.radicata = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Molinia.caerulea = c(1L,
2L, 1L, 4L, 8L, 1L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 3L,
0L), Carex.arenaria = c(0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 2L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Cladonia.fimbriata = c(0L, 0L,
0L, 0L, 0L, 0L, 1L, 2L, 2L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L
), Pinus.sylvestris = c(0L, 2L, 1L, 2L, 1L, 0L, 2L, 2L, 2L, 2L,
1L, 2L, 2L, 8L, 2L, 2L, 18L, 0L), Quercus.robur = c(0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
Betula.pendula = c(0L, 0L, 0L, 2L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Cephaloziella.divaricata = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Pseudoscleropodium.purum = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L), Cladonia.humilis = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L), Festuca.species = c(0L, 0L, 1L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Brachythecium.rutabulum = c(0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Carex.panicea = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L), Sorbus.aucuparia.1 = c(1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Ceratodon.purpureus = c(0L, 0L, 0L, 0L, 0L, 0L,
2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L), Polytrichum.formosum = c(0L,
0L, 0L, 0L, 0L, 0L, 2L, 2L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L,
0L, 0L), Bryum.capillare = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), Lecidea.lithophila = c(0L,
0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Amelanchier.lamarckii = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L), Salix.aurita.1 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 1L), Cephaloziella.species = c(0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Betula.pubescens = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Lecidella.scabra = c(0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Calamagrostis.epigejos = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Placynthiella.icmalea = c(0L, 4L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Geranium.robertianum = c(0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Micarea.lynceola = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Porpidia.soredizodes = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Scoliciosporum.umbrinum = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Trapelia.obtegens = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Deschampsia.flexuosa.2 = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L), Rubus.plicatus.1 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 0L), Bryum.spec. = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Cladonia.monomorpha.1 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Geisleria.sychnogonoides = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 0L, 0L, 4L), Micarea.lignaria = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 4L)), class = "data.frame", row.names = c(274784L, 274553L,
272517L, 275195L, 272514L, 274783L, 99L, 113L, 96L, 109L, 117L,
102L, 114L, 97L, 138L, 133L, 95L, 237L))
I hope the question is clear, if not i will expand.
!Hi I think I understand your question.
The easiest way for me to think aobut this is by making a site variable, then taking your wide data and make it long as such:
df <- df %>%
mutate(site_no = 1:nrow(.)) %>%
gather(species, abundance, -site_no)
Now we can filter sites that have abundance = 0 and the do some summarrising:
df %>% filter(abundance != 0) %>%
group_by(species) %>%
summarise(count = n(),
total =sum(abundance))
Here count is the number sites they are present in and total is the total number. Using arrange on either variable and and subsetting will get you the answers you are interested in (using the -count or -total).
I am trying to experiment with multiple correspondence analysis (MCA) on a dataset containing integer and factor classes. Naturally, looking at the FactoMineR docs I thought MCA would be appropriate. However, I am currently running in to an error that I cannot solve.
Error in which(unlist(lapply(listModa, is.numeric))) :
argument to 'which' is not logical
The truncated output of str is:
'data.frame': 1000 obs. of 115 variables:
$ X1 : int 0 0 0 0 0 0 0 0 0 0 ...
....
$ X98 : int 0 0 0 0 0 0 0 0 0 0 ...
$ X99 : Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
$ X100: Factor w/ 3 levels "Head","Unknown",..: 2 2 1 1 1 1 1 2 1 1 ...
$ X101: int 44 67 69 50 61 62 30 59 55 41 ...
$ X102: Factor w/ 5 levels "Female","FEMALE",..: 1 1 1 3 1 3 1 3 1 1 ...
...
$ X115: Factor w/ 93287 levels "","010010201001",..: 35903 1 33052 66760 41187 14553 85711 64424 63119 46155 ...
The dataset is too large to just put on here so I am hoping the structure and description will be sufficient.
I have made sure that the only classes in the columns are integer or factor (the same as the demo tea dataset). I used na.omit to remove any missing data and I make sure the call to MCA has the column indicies passed to the appropriate arguments.
numerics <- as.numeric(which(sapply(df, is.numeric)))
factors <- as.numeric(which(sapply(df, is.factor)))
df.mca <- MCA(df, ncp=5, quanti.sup = numerics, quali.sup = factors, graph=FALSE)
The closest thing I have found is this question but it doesn't really provide a solution for me. I can look at the function but I don't know why my dataset is causing this error in the first place.
Any insight is appreciated.
Edit
Here is a subset of the data via dput
structure(list(X1 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
X2 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X3 = c(0L,
0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 2L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L), X4 = c(0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L), X5 = c(1L, 0L, 0L, 0L, 8L, 4L, 0L,
0L, 0L, 9L, 0L, 8L, 2L, 1L, 1L, 3L, 0L, 0L, 4L, 0L, 9L, 0L,
0L, 2L, 0L), X6 = c(0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), X7 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L), X8 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X9 = c(0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L), X10 = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), X11 = c(0L, 0L, 4L, 1L, 35L, 3L, 0L, 3L,
4L, 0L, 6L, 2L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 19L, 0L,
3L, 0L, 0L), X12 = c(0L, 0L, 1L, 1L, 2L, 2L, 0L, 2L, 1L,
0L, 1L, 1L, 1L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 13L, 0L, 1L,
0L, 0L), X13 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L
), X14 = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L), X15 = c(0L,
0L, 0L, 0L, 0L, 2L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 39L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), X16 = c(0L, 0L,
1L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X17 = c(0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, 0L, 0L), X18 = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), X19 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), X20 = c(2L, 0L, 0L, 0L, 11L, 1L, 0L, 0L, 0L, 7L,
5L, 12L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 1L, 26L, 0L, 0L, 0L,
0L), X21 = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L),
X22 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X23 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X24 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, 0L, 0L, 0L), X25 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X26 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X27 = c(5L, 1L, 0L, 2L, 46L, 4L, 0L, 0L, 0L,
3L, 14L, 6L, 1L, 2L, 6L, 0L, 0L, 0L, 4L, 0L, 24L, 0L, 0L,
1L, 2L), X28 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), X29 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X30 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X31 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X32 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X33 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X34 = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X35 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
X36 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X37 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X38 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 2L, 0L, 0L, 0L, 0L), X39 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
2L, 0L, 0L, 0L, 0L), X40 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X41 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X42 = c(0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
X43 = c(0L, 3L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 2L,
0L, 20L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L), X44 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X45 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X46 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X47 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 0L), X48 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X49 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
X50 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X51 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X52 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X53 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X54 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X55 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X56 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L),
X57 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X58 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X59 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X60 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X61 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L,
0L, 0L, 0L), X62 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X63 = c(0L, 1L, 2L, 0L, 7L, 12L, 0L, 1L, 0L, 8L, 2L,
8L, 1L, 0L, 1L, 0L, 0L, 0L, 12L, 0L, 48L, 0L, 2L, 0L, 0L),
X64 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X65 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X66 = c(0L, 6L, 2L,
4L, 4L, 6L, 0L, 2L, 0L, 0L, 5L, 0L, 22L, 0L, 45L, 0L, 0L,
0L, 0L, 1L, 54L, 0L, 0L, 0L, 0L), X67 = c(0L, 0L, 0L, 0L,
15L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 0L, 0L, 3L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X68 = c(0L, 0L, 0L, 0L, 5L,
1L, 0L, 0L, 0L, 4L, 0L, 2L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L,
9L, 0L, 0L, 3L, 0L), X69 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X70 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), X71 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), X72 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X73 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X74 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X75 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L), X76 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 10L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L), X77 = c(0L, 0L, 0L, 0L, 0L, 2L, 0L, 2L,
0L, 1L, 0L, 0L, 1L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L,
0L, 0L), X78 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), X79 = c(0L, 1L, 0L, 0L, 24L, 6L, 0L, 3L, 0L, 0L, 7L, 2L,
2L, 1L, 12L, 0L, 0L, 0L, 2L, 3L, 10L, 0L, 0L, 0L, 0L), X80 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X81 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 2L, 0L, 0L, 0L, 0L), X82 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L), X83 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), X84 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L), X85 = c(1L, 0L, 0L, 1L, 3L, 0L, 0L, 1L, 0L, 1L, 3L,
2L, 0L, 0L, 9L, 0L, 0L, 0L, 1L, 0L, 2L, 0L, 0L, 0L, 0L),
X86 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), X87 = c(0L,
1L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 4L, 0L,
0L, 0L, 0L, 2L, 0L, 0L, 0L, 1L, 0L), X88 = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), X89 = c(0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X90 = c(0L, 2L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 24L,
0L, 0L, 1L, 0L), X91 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), X92 = c(0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 5L, 0L, 0L, 1L, 0L
), X93 = c(2L, 1L, 0L, 0L, 2L, 5L, 0L, 3L, 0L, 0L, 5L, 0L,
0L, 0L, 4L, 0L, 0L, 0L, 4L, 0L, 7L, 0L, 0L, 0L, 2L), X94 = c(0L,
6L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L,
0L, 0L, 0L, 0L, 8L, 0L, 0L, 0L, 0L), X95 = c(0L, 0L, 0L,
0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 3L, 0L), X96 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), X97 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L), X98 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L,
0L), X99 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L), .Label = c("N", "Y"), class = "factor"), X100 = structure(c(2L,
2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L,
1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Head", "Unknown"
), class = "factor"), X101 = c(44L, 67L, 69L, 50L, 61L, 62L,
30L, 59L, 55L, 41L, 61L, 69L, 56L, 84L, 75L, 82L, 71L, 60L,
62L, 62L, 68L, 67L, 68L, 53L, 59L), X102 = structure(c(1L,
1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L), .Label = c("Female",
"Male"), class = "factor"), X103 = structure(c(3L, 6L, 6L,
5L, 6L, 9L, 10L, 6L, 6L, 2L, 5L, 6L, 6L, 7L, 5L, 1L, 6L,
4L, 3L, 7L, 4L, 1L, 8L, 7L, 6L), .Label = c("0: No data available",
"1: Under $15,000", "3: $20,000 - $29,999", "4: $30,000 - $39,999",
"5: $40,000 - $49,999", "6: $50,000 - $74,999", "7: $75,000 - $99,999",
"9: $125,000 - $149,999", "A: $150,000 - $174,999", "B: $175,000 - $199,999"
), class = "factor"), X104 = structure(c(3L, 4L, 2L, 1L,
1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 4L, 5L, 6L, 1L, 1L, 1L,
1L, 1L, 3L, 3L, 1L, 1L), .Label = c("Married", "Single",
"Unknown", "Widowed", "Widow or Widower", "Widow/Widower"
), class = "factor"), X105 = structure(c(1L, 2L, 1L, 2L,
2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 1L, 1L, 1L, 1L), .Label = c("U", "Y"), class = "factor"),
X106 = structure(c(2L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 2L, 1L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L
), .Label = c("Deferrer", "Involved", "Loyal", "Self Reliant"
), class = "factor"), X107 = structure(c(2L, 1L, 3L, 1L,
3L, 3L, 1L, 1L, 1L, 3L, 4L, 3L, 2L, 3L, 3L, 5L, 3L, 1L, 3L,
1L, 1L, 3L, 3L, 1L, 1L), .Label = c("Commercial", "Medicaid",
"Medicare", "Other", "Self"), class = "factor"), X108 = structure(c(2L,
3L, 5L, 1L, 5L, 2L, 3L, 2L, 4L, 1L, 2L, 5L, 3L, 3L, 1L, 3L,
1L, 6L, 5L, 2L, 5L, 1L, 6L, 5L, 3L), .Label = c("Dormant",
"Periodic", "Prospect", "Recent", "Recurring", "Sporadic"
), class = "factor"), X109 = structure(c(5L, 6L, 6L, 3L,
1L, 2L, 4L, 5L, 6L, 1L, 1L, 6L, 5L, 6L, 2L, 5L, 6L, 6L, 6L,
6L, 1L, 5L, 6L, 3L, 5L), .Label = c("African American", "Client - Non Hispanic/Latino",
"Jewish", "Scandinavian", "Uncoded ", "Western European"), class = "factor"),
X110 = structure(c(3L, 3L, 4L, 3L, 4L, 1L, 1L, 3L, 2L, 3L,
4L, 2L, 3L, 2L, 4L, 3L, 4L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 3L
), .Label = c("Completed College", "Completed High School",
"Not available", "Some college"), class = "factor"), X111 = structure(c(11L,
23L, 16L, 13L, 6L, 21L, 4L, 10L, 9L, 15L, 24L, 14L, 8L, 7L,
22L, 2L, 20L, 1L, 3L, 19L, 5L, 12L, 25L, 18L, 17L), .Label = c("07869",
"07960", "17747", "20105", "21206", "21218", "22003", "22602",
"27344", "27370", "40214", "42351", "43081", "48180", "48235",
"51542", "55124", "63376", "64151", "72023", "80422", "80918",
"85204", "85351", "97439"), class = "factor"), X112 = structure(c(5L,
2L, 4L, 12L, 6L, 3L, 15L, 10L, 10L, 7L, 2L, 7L, 15L, 15L,
3L, 11L, 1L, 11L, 14L, 9L, 6L, 5L, 13L, 9L, 8L), .Label = c("AR",
"AZ", "CO", "IA", "KY", "MD", "MI", "MN", "MO", "NC", "NJ",
"OH", "OR", "PA", "VA"), class = "factor"), X113 = structure(c(7L,
1L, 5L, 16L, 8L, 4L, 22L, 15L, 14L, 9L, 1L, 9L, 21L, 20L,
3L, 13L, 2L, 13L, 18L, 11L, 19L, 6L, 17L, 12L, 10L), .Label = c("04013",
"05085", "08041", "08047", "19155", "21091", "21111", "24510",
"26163", "27037", "29165", "29183", "34027", "37037", "37151",
"39049", "41039", "42035", "510", "51059", "51069", "51107"
), class = "factor"), X114 = structure(c(8L, 1L, 6L, 19L,
9L, 5L, 24L, 18L, 17L, 10L, 2L, 11L, 23L, 22L, 4L, 15L, 3L,
16L, 21L, 13L, 1L, 7L, 20L, 14L, 12L), .Label = c("", "04013071504",
"05085020201", "08041000202", "08047013800", "19155021400",
"21091960200", "21111012202", "24510270903", "26163539200",
"26163583700", "27037060825", "29165030102", "29183311331",
"34027043500", "34027045603", "37037020200", "37151030504",
"39049006990", "41039000707", "42035030900", "51059450800",
"51069051000", "51107611801"), class = "factor"), X115 = structure(c(8L,
1L, 6L, 19L, 9L, 5L, 24L, 18L, 17L, 10L, 2L, 11L, 23L, 22L,
4L, 15L, 3L, 16L, 21L, 13L, 1L, 7L, 20L, 14L, 12L), .Label = c("",
"040130715044", "050850202011", "080410002024", "080470138004",
"191550214002", "210919602003", "211110122024", "245102709033",
"261635392003", "261635837001", "270370608253", "291650301021",
"291833113312", "340270435001", "340270456031", "370370202002",
"371510305041", "390490069901", "410390007071", "420350309002",
"510594508002", "510690510002", "511076118012"), class = "factor")), .Names = c("X1",
"X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "X11",
"X12", "X13", "X14", "X15", "X16", "X17", "X18", "X19", "X20",
"X21", "X22", "X23", "X24", "X25", "X26", "X27", "X28", "X29",
"X30", "X31", "X32", "X33", "X34", "X35", "X36", "X37", "X38",
"X39", "X40", "X41", "X42", "X43", "X44", "X45", "X46", "X47",
"X48", "X49", "X50", "X51", "X52", "X53", "X54", "X55", "X56",
"X57", "X58", "X59", "X60", "X61", "X62", "X63", "X64", "X65",
"X66", "X67", "X68", "X69", "X70", "X71", "X72", "X73", "X74",
"X75", "X76", "X77", "X78", "X79", "X80", "X81", "X82", "X83",
"X84", "X85", "X86", "X87", "X88", "X89", "X90", "X91", "X92",
"X93", "X94", "X95", "X96", "X97", "X98", "X99", "X100", "X101",
"X102", "X103", "X104", "X105", "X106", "X107", "X108", "X109",
"X110", "X111", "X112", "X113", "X114", "X115"), row.names = c(414721L,
73797L, 281098L, 376819L, 33586L, 462430L, 452574L, 5913L, 412768L,
460097L, 431932L, 403489L, 407344L, 295527L, 157897L, 197133L,
465379L, 22316L, 358357L, 178178L, 293092L, 314823L, 186844L,
184603L, 343412L), class = "data.frame")
I stumbled upon the same problem, and even if it might not interest OP anymore I hope it could help someone else.
What I did first was transform all my numeric data to factor :
Xfac = factor(X[,1], ordered = TRUE)
for (i in 2:29){
tfac = factor(X[,i], ordered = TRUE)
Xfac = data.frame(Xfac, tfac)
}
colnames(Xfac)=labels(X[1,])
Still, it would not work. But my 2nd problem was (and I think it was yours as well) that I included EVERY factor as supplementary variable !
So these :
MCA(Xfac, quanti.sup = c(1:29), graph=TRUE)
MCA(Xfac, quali.sup = c(1:29), graph=TRUE)
Would generate the same error, but this one works :
MCA(Xfac, graph=TRUE)
Not transforming the data to factors also generated the problem.
I've got a time dependent data from animal recording.
My data has two groups (TR and UT) each group has 20 replicate. Tiempo (time) variable goes from 282 sec to 318 sec.
I have a turning point at 300 sec in which I turn on a light stimulus. I register response that I convert into an numeric integer value.
A data subset looks like this
> dput(sub)
structure(list(tiempo = c(282, 282.2, 282.4, 282.6, 282.8, 283,
283.2, 283.4, 283.6, 283.8, 284, 284.2, 284.4, 284.6, 284.8,
285, 285.2, 285.4, 285.6, 285.8, 286, 286.2, 286.4, 286.6, 286.8,
287, 287.2, 287.4, 287.6, 287.8, 288, 288.2, 288.4, 288.6, 288.8,
289, 289.2, 289.4, 289.6, 289.8, 290, 290.2, 290.4, 290.6, 290.8,
291, 291.2, 291.4, 291.6, 291.8, 292, 292.2, 292.4, 292.6, 292.8,
293, 293.2, 293.4, 293.6, 293.8, 294, 294.2, 294.4, 294.6, 294.8,
295, 295.2, 295.4, 295.6, 295.8, 296, 296.2, 296.4, 296.6, 296.8,
297, 297.2, 297.4, 297.6, 297.8, 298, 298.2, 298.4, 298.6, 298.8,
299, 299.2, 299.4, 299.6, 299.8, 300, 300.2, 300.4, 300.6, 300.8,
301, 301.2, 301.4, 301.6, 301.8, 302, 302.2, 302.4, 302.6, 302.8,
303, 303.2, 303.4, 303.6, 303.8, 304, 304.2, 304.4, 304.6, 304.8,
305, 305.2, 305.4, 305.6, 305.8, 306, 306.2, 306.4, 306.6, 306.8,
307, 307.2, 307.4, 307.6, 307.8, 308, 308.2, 308.4, 308.6, 308.8,
309, 309.2, 309.4, 309.6, 309.8, 310, 310.2, 310.4, 310.6, 310.8,
311, 311.2, 311.4, 311.6, 311.8, 312, 312.2, 312.4, 312.6, 312.8,
313, 313.2, 313.4, 313.6, 313.8, 314, 314.2, 314.4, 314.6, 314.8,
315, 315.2, 315.4, 315.6, 315.8, 316, 316.2, 316.4, 316.6, 316.8,
317, 317.2, 317.4, 317.6, 317.8, 318), TR2x45.1 = c(0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), TR2x45.10 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 2L, 1L, 0L), TR2x45.11 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), TR2x45.12 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), TR2x45.8 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), TR2x45.9 = c(0L, 4L, 4L, 4L, 3L, 0L, 4L, 3L,
5L, 3L, 4L, 5L, 4L, 4L, 3L, 3L, 3L, 5L, 4L, 4L, 3L, 4L, 5L, 4L,
2L, 5L, 3L, 5L, 4L, 5L, 3L, 4L, 4L, 4L, 3L, 5L, 3L, 5L, 4L, 4L,
3L, 3L, 6L, 4L, 4L, 2L, 3L, 4L, 2L, 4L, 5L, 4L, 3L, 5L, 3L, 3L,
4L, 4L, 4L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 5L, 4L, 4L, 3L, 3L, 2L,
4L, 3L, 4L, 3L, 4L, 4L, 3L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 0L, 2L,
2L, 4L, 4L, 3L, 3L, 11L, 3L, 3L, 4L, 3L, 1L, 4L, 3L, 2L, 2L,
2L, 2L, 1L, 1L, 1L, 0L, 1L, 2L, 3L, 1L, 1L, 0L, 1L, 0L, 1L, 1L,
2L, 1L, 7L, 2L, 5L, 1L, 2L, 2L, 1L, 1L, 1L, 0L, 0L, 2L, 4L, 5L,
1L, 0L, 1L, 1L, 1L, 3L, 1L, 1L, 0L, 0L, 4L, 2L, 2L, 3L, 1L, 1L,
0L, 1L, 1L, 2L, 3L, 2L, 3L, 3L, 2L, 0L, 0L, 1L, 1L, 1L, 3L, 2L,
4L, 1L, 1L, 1L, 2L, 2L, 3L, 1L, 1L, 1L, 0L, 1L, 1L, 1L), UT2x45.1 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), UT2x45.10 = c(0L, 6L, 4L, 2L, 3L, 3L, 6L, 6L,
3L, 4L, 7L, 4L, 2L, 3L, 4L, 7L, 5L, 3L, 6L, 4L, 6L, 4L, 5L, 5L,
3L, 8L, 5L, 3L, 11L, 3L, 4L, 6L, 8L, 4L, 9L, 3L, 4L, 3L, 3L,
5L, 7L, 3L, 2L, 4L, 4L, 3L, 2L, 5L, 8L, 10L, 6L, 4L, 8L, 6L,
0L, 5L, 8L, 9L, 2L, 9L, 9L, 0L, 2L, 3L, 5L, 9L, 5L, 5L, 5L, 3L,
4L, 2L, 1L, 5L, 7L, 3L, 5L, 7L, 5L, 1L, 2L, 3L, 5L, 7L, 2L, 5L,
5L, 5L, 5L, 2L, 2L, 4L, 6L, 5L, 4L, 2L, 3L, 4L, 5L, 2L, 2L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 3L, 2L, 3L, 1L, 1L,
2L, 4L, 4L, 4L, 2L, 4L, 4L, 4L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L,
3L, 3L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 4L, 3L, 1L,
2L, 2L, 1L, 2L, 2L, 2L, 4L, 2L, 3L, 1L, 0L, 1L, 0L, 1L, 1L, 1L,
1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
UT2x45.11 = c(0L, 0L, 1L, 0L, 1L, 2L, 0L, 0L, 0L, 1L, 2L,
0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L), UT2x45.12 = c(0L, 1L, 0L, 0L, 1L, 0L,
0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L,
0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("tiempo",
"TR2x45.1", "TR2x45.10", "TR2x45.11", "TR2x45.12", "TR2x45.8",
"TR2x45.9", "UT2x45.1", "UT2x45.10", "UT2x45.11", "UT2x45.12"
), row.names = c(NA, -181L), class = "data.frame")
My goal is to analyze the frequency of response before and after the light (I could define two 18-sec or four 9-sec intervals). I was thinking in analyze how many times I have response=1, response=2 and so on, for each animal within both groups for each time interval.
I also would need to plot the data but I can try to fix that by myself once I get the frequency/correctly melted data.
Here's an easy example (first column vs t)
> grep(pattern = "1",x = TR)
[1] 7 11
> tiempo[grep(pattern= "1",x=TR)]
[1] 283.2 284.0
So I should get an "event of 1" in time 283.2 and another "event of 1" in 284.
When I ask the same for TR number 3
> tiempo[grep(pattern= "1",x=TR3)]
[1] 291
I should get an "event of 1" in time 291.
If two animals from the same group have a coincidence in time and event that should be added. 1 "event of 1" + 1 "event of 1" = 2 "event of 1". And that's the frequency that I want to get for every animal, collapsed later into group for each time point.
UPDATE
I have managed to write down some functions that get me the position of the response value I'm looking for (num) in data frame dat and give me the times (in a list that I should use someway to collapse within groups)
grep.fun<-function(num,dat){
li<-list(apply(dat,2,function(dat) grep(num,dat)))
return(li)
}
find.tempo<-function(num,dat){
j<-1
LIS<-list()
for (i in grep.fun(num,dat)[[1]]) {
LIS[j]<-list(dat$t[c(i)])
if (j>=length(dat)) break else
j<-j+1
}
return(LIS)
}
contar<-function(num,dat){
tabla<-data.frame(
variable=names(dat),freq=as.numeric(summary(find.tempo(num,dat))[,1])) # first column of summary is freq
return(tabla)
}
Besides, I need to collapse response (as a function of time) values within the groups for frequency analysis.
I have managed to write a group of functions that do what I want.
I had to split my data set into both groups to feed the dat parameter but it's good enough.
The code is this.
grep.fun<-function(num,dat){
li<-list(apply(dat,2,function(dat) grep(num,dat)))
return(li)
}
find.tempo<-function(num,dat){
j<-1
LIS<-list()
for (i in grep.fun(num,dat)[[1]]) {
LIS[j]<-list(dat$t[c(i)])
if (j>=length(dat)) break else
j<-j+1
}
return(LIS)
}
contar.tempo<-function(num,dat){
df<-data.frame(rep(NA,length(dat$tiempo)),rep(NA,length(dat$tiempo)))
i<-1
for (time in dat$tiempo){
cuenta<-sum(as.numeric(grepl(pattern=time,find.tempo(num,dat))))
df[i,]<-c(time,cuenta)
if (i>=length(dat$tiempo)) break else
i<-i+1
}
names(df)<-c("tiempo","cuenta")
return(df)
}
contar.freq<-function(num,dat){
tabla<-data.frame(
variable=names(dat),freq=as.numeric(summary(find.tempo(num,dat))[,1])) # first column of summary is freq
tabla2<-tabla[-1,] # sacar tiempo
return(tabla2)
}
The contar.tempo function is the one I will use to enter the level of response I want to evaluate (num) and both data sets for trained and control animals.
The result is a data frame with the number of times an animal had an event of certain magnitude. (e.g, df<-contar.tempo(1,your_data))
The contar.freq function can be used to count the number of events of certain response level for a each animal.