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 am quite new to R world. I'm currently working on a flight delay prediction.
I'm getting "object 'date01-01-2004' not found" even though it is present.
I tried converting all the factors into dummy variables and doing random forest on it.
library(caret)
library(dummies)
library(randomForest)
flight<-read.csv("E:\\Rdata\\FlightDelays.csv",header = TRUE)
summary(flight$dest)
summary(flight$carrier)
plot(flight$delay~flight$carrier,ylab="delay",xlab="carrier")
plot(flight$delay~flight$dest,ylab="delay",xlab="destination")
plot(flight$delay~flight$origin,ylab="delay",xlab="origin")
plot(flight$delay~flight$dayweek,ylab="delay",xlab="dayweek")
str(flight)
flight$tailnu<-NULL
fl1<-flight$delay
flight$delay<-NULL
flight<-dummy.data.frame(data=flight)
dput(head(flight,50))
flight$delay<-fl1
rf1<-randomForest(delay~.,data=flight)
The output should not be an error and random forest computed one.But I'm getting following output even though it contains date01-01-200 .
structure(list(schedtime = c(1455L, 1640L, 1245L, 1715L, 1039L,
840L, 1240L, 1645L, 1715L, 2120L, 2120L, 1455L, 930L, 1230L,
1430L, 1730L, 2030L, 1530L, 600L, 1830L, 900L, 1300L, 1400L,
1500L, 1900L, 850L, 900L, 1100L, 1300L, 1500L, 1700L, 2100L,
1455L, 1720L, 1030L, 700L, 1300L, 1730L, 840L, 1710L, 1245L,
2120L, 1700L, 1900L, 1525L, 1900L, 1400L, 1515L, 1300L, 1630L
), carrierCO = 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, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), carrierDH = c(0L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 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, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), carrierDL = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 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), carrierMQ = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 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), carrierOH = c(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), carrierRU = 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, 1L,
1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), carrierUA = 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, 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), carrierUS = 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, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), deptime = c(1455L,
1640L, 1245L, 1709L, 1035L, 839L, 1243L, 1644L, 1710L, 2129L,
2114L, 1458L, 932L, 1228L, 1429L, 1728L, 2029L, 1525L, 556L,
1822L, 853L, 1254L, 1356L, 1452L, 1853L, 841L, 858L, 1056L, 1253L,
1458L, 1655L, 2055L, 1452L, 1710L, 1030L, 656L, 1256L, 1726L,
840L, 1704L, 1245L, 2118L, 1651L, 1850L, 1521L, 1855L, 1357L,
1508L, 1255L, 1625L), destEWR = 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, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), destJFK = c(1L,
1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 1L, 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), destLGA = c(0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), distance = c(184L, 213L, 229L, 229L,
229L, 228L, 228L, 228L, 228L, 228L, 229L, 213L, 214L, 214L, 214L,
214L, 214L, 213L, 213L, 213L, 214L, 214L, 214L, 214L, 214L, 229L,
214L, 214L, 214L, 214L, 214L, 214L, 169L, 169L, 169L, 169L, 199L,
199L, 213L, 213L, 213L, 213L, 213L, 213L, 199L, 199L, 199L, 213L,
213L, 199L), `date01-01-2004` = 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, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), `date01-02-2004` = 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), `date01-03-2004` = 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), `date01-04-2004` = 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), `date01-05-2004` = 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), `date01-06-2004` = 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), `date01-07-2004` = 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), `date01-08-2004` = 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), `date01-09-2004` = 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), `date01-10-2004` = 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), `date01-11-2004` = 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), `date01-12-2004` = 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), `date1/13/2004` = 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), `date1/14/2004` = 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), `date1/15/2004` = 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), `date1/16/2004` = 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), `date1/17/2004` = 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), `date1/18/2004` = 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), `date1/19/2004` = 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), `date1/20/2004` = 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), `date1/21/2004` = 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), `date1/22/2004` = 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), `date1/23/2004` = 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), `date1/24/2004` = 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), `date1/25/2004` = 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), `date1/26/2004` = 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), `date1/27/2004` = 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), `date1/28/2004` = 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), `date1/29/2004` = 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), `date1/30/2004` = 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), `date1/31/2004` = 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), flightnumber = c(5935L,
6155L, 7208L, 7215L, 7792L, 7800L, 7806L, 7810L, 7812L, 7814L,
7924L, 746L, 1746L, 1752L, 1756L, 1762L, 1768L, 4752L, 4760L,
4784L, 4956L, 4964L, 4966L, 4968L, 4976L, 846L, 2164L, 2168L,
2172L, 2176L, 2180L, 2188L, 2403L, 2675L, 2303L, 2703L, 808L,
814L, 7299L, 7302L, 7303L, 7304L, 2497L, 2385L, 2261L, 2336L,
2216L, 2156L, 2664L, 2181L), originBWI = c(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, 1L, 1L, 1L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), originDCA = c(0L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L,
0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
1L), originIAD = c(0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 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, 0L, 0L, 1L, 1L, 1L, 1L, 1L,
1L, 0L, 0L, 0L, 1L, 1L, 0L), weather = 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), dayweek = c(4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L), daymonth = 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, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("schedtime", "carrierCO",
"carrierDH", "carrierDL", "carrierMQ", "carrierOH", "carrierRU",
"carrierUA", "carrierUS", "deptime", "destEWR", "destJFK", "destLGA",
"distance", "date01-01-2004", "date01-02-2004", "date01-03-2004",
"date01-04-2004", "date01-05-2004", "date01-06-2004", "date01-07-2004",
"date01-08-2004", "date01-09-2004", "date01-10-2004", "date01-11-2004",
"date01-12-2004", "date1/13/2004", "date1/14/2004", "date1/15/2004",
"date1/16/2004", "date1/17/2004", "date1/18/2004", "date1/19/2004",
"date1/20/2004", "date1/21/2004", "date1/22/2004", "date1/23/2004",
"date1/24/2004", "date1/25/2004", "date1/26/2004", "date1/27/2004",
"date1/28/2004", "date1/29/2004", "date1/30/2004", "date1/31/2004",
"flightnumber", "originBWI", "originDCA", "originIAD", "weather",
"dayweek", "daymonth"), dummies = structure(list(carrier = 2:9,
dest = 11:13, date = 15:45, origin = 47:49), .Names = c("carrier",
"dest", "date", "origin")), row.names = c("1", "2", "3", "4",
"5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26",
"27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37",
"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48",
"49", "50"), class = "data.frame")
Error in eval(predvars, data, env) : object 'date01-01-2004' not found
My guess (strongly supported by the example below) is that randomForest() can't handle non-syntactic variable/column names, i.e. ones with spaces or punctuation other than dots in them. You could try names(flight) <- make.names(names(flight)) to fix this. It's surprising that read.csv() didn't already fix the names for you: are you sure you didn't use readr::read_csv() instead?
library(randomForest)
## make up random frame with OK names
dd <- data.frame(y=rnorm(1000),x1=rnorm(1000),x2=rnorm(1000))
r1 <- randomForest(y~., data=dd) ## this works fine
Now modify the names to include a predictor with dashes in its name:
names(dd)[3] <- "a-b-c"
r2 <- randomForest(y~., data=dd)
Error in eval(predvars, data, env) : object 'a-b-c' not found
Now fix the names using make.names():
names(dd) <- make.names(names(dd))
r3 <- randomForest(y~., data=dd) ## works
What did make.names() do?
names(dd)
## [1] "y" "x1" "a.b.c"
Im trying to train a regression tree in using the train-function from caret. It worked with a linear model. But when I tried a regression tree the following error came: Error in '[.data.frame'(m, labs) : undefined columns selected
the data frame contains of 450+ dummy variables made from categorical variables using the fastDummies-package. Is it a problem that the data frame consists of that many dummies, where there could be few 1's and many zeroes in each variable?
I have tried to versions:
model_reg_tree <- train(
x = data_train[, names(data_train) != "Outcome"],
y = data_train$Outcome,
data = data_train,
method = 'rpart',
tuneLength = 10,
trControl = kontroller_cv)
and
model_reg_træ <- train(
Outcome ~ .,
data = data_train,
method = 'rpart',
tuneLength = 10,
trControl = kontroller_cv)
the controls:
kontroller_cv <- trainControl(
method = "cv",
number = 10 ,
summaryFunction = defaultSummary,
verboseIter = TRUE,
index = folds
)
data (only some of it, did not have space enough to all of it)
dput(head(data_train))
structure(list(Medlem_Køn = c(1L, 1L, 1L, 1L, 1L, 1L), Alder_ind = c(20,
20, 54, 36, 51, 51), Elev_ind = c(0L, 0L, 0L, 0L, 0L, 0L), Elev_ud = c(0L,
0L, 0L, 0L, 0L, 0L), Ledig_ind = c(1L, 1L, 1L, 1L, 1L, 1L), Outcome = c(492L,
1158L, 2161L, 7365L, 8522L, 5326L), PostNr_ud_87 = c(0L, 0L,
0L, 0L, 0L, 0L), PostNr_ud_47 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_98 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_74 = c(0L, 0L, 0L, 0L, 0L, 0L),
PostNr_ud_55 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_64 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_94 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_86 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_90 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_52 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_95 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_62 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_54 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_85 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_58 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_93 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_63 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_26 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_67 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_42 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_77 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_00 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_99 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_20 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_71 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_89 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_41 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_92 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_75 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_76 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_44 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_65 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_57 = c(0L,
0L, 0L, 0L, 1L, 0L), PostNr_ud_49 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_45 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_78 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_60 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_84 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_59 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_88 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_61 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_29 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_82 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_34 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_56 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_68 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_83 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_96 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_69 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_24 = c(0L, 1L, 0L, 0L, 0L, 0L), PostNr_ud_28 = c(0L,
0L, 1L, 0L, 0L, 0L), PostNr_ud_72 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_97 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_32 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_40 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_35 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_37 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_Odense = c(0L, 0L, 0L, 0L,
0L, 0L), PostNr_ud_33 = c(1L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_66 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_79 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_70 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_21 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_30 = c(0L, 0L, 0L, 0L, 0L,
1L), PostNr_ud_53 = c(0L, 0L, 0L, 1L, 0L, 0L), PostNr_ud_73 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_36 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_Frd_c = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_23 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_27 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_43 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_22 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_46 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_48 = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_80 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_25 = c(0L, 0L, 0L, 0L, 0L,
0L), PostNr_ud_Kbh_v = c(0L, 0L, 0L, 0L, 0L, 0L), PostNr_ud_31 = c(0L,
0L, 0L, 0L, 0L, 0L), PostNr_ud_Kbh_K = c(0L, 0L, 0L, 0L,
0L, 0L), `Sektor_ind_Pædagogisk Sektor` = c(1L, 0L, 0L, 0L,
0L, 0L), `Sektor_ind_Social- og Sundhedssektoren` = c(0L,
1L, 0L, 1L, 0L, 0L), `Sektor_ind_Teknik- og Servicesektoren` = c(0L,
0L, 0L, 0L, 0L, 0L), `Sektor_ind_Kost- og Servicesektoren` = c(0L,
0L, 1L, 0L, 0L, 1L), `Sektor_ind_Uden sektor` = c(0L, 0L,
0L, 0L, 1L, 0L), Stilling_ind_Dagplejer = c(0L, 0L, 0L, 0L,
0L, 0L), Stilling_ind_Sygehjælpere = c(0L, 0L, 0L, 1L, 0L,
0L), `Stilling_ind_Anden stilling` = c(0L, 0L, 1L, 0L, 1L,
1L), `Stilling_ind_Social og sundhedshjælper` = c(0L, 1L,
0L, 0L, 0L, 0L), `Stilling_ind_Social og sundhedsassistent` = c(0L,
0L, 0L, 0L, 0L, 0L), Stilling_ind_Pædagogmedhjælper = c(1L,
0L, 0L, 0L, 0L, 0L), Stilling_ind_Hjemmehjælper = c(0L, 0L,
0L, 0L, 0L, 0L), `Stilling_ind_Pædagog, Dag - Københavns Kommune` = c(0L,
0L, 0L, 0L, 0L, 0L), `Stilling_ind_Pædagogisk assistent - Dag-området` = c(0L,
0L, 0L, 0L, 0L, 0L), Leder_ud_Nej = c(1L, 1L, 1L, 1L, 1L,
1L), `Leder_ud_Praksisnær ledelse` = c(0L, 0L, 0L, 0L, 0L,
0L), `Leder_ud_Strategisk ledelse` = c(0L, 0L, 0L, 0L, 0L,
0L), `Afd_navn_ind_FOA Horsens` = c(0L, 0L, 0L, 0L, 0L, 0L
), `Afd_navn_ind_Næstved, Nedlagt` = c(0L, 0L, 0L, 0L, 0L,
0L), `Afd_navn_ind_FOA Vendsyssel` = c(0L, 0L, 0L, 0L, 0L,
0L), `Afd_navn_ind_FOA Herning` = c(0L, 0L, 0L, 0L, 0L, 0L
), `Afd_navn_ind_Ikke defineret konv.` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Sønderborg` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Nordjylland` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Silkeb-Skanderbo` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Odense` = c(0L, 0L, 0L,
1L, 0L, 0L), `Afd_navn_ind_FOA Randers` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Tønder,Nedlagt` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_PMF Djursland,Nedlag` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Sydfyn` = c(0L, 0L,
0L, 0L, 1L, 0L), `Afd_navn_ind_FOA Aabenraa,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), Afd_navn_ind_KLS = c(0L, 0L, 1L, 0L,
0L, 0L), `Afd_navn_ind_FOA Esbjerg` = c(0L, 0L, 0L, 0L, 0L,
0L), `Afd_navn_ind_FOA Slagelse,Nedlagt` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_FOA Thisted-Morsø` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Hillerød,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 1L), `Afd_navn_ind_FOA Viborg` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Frederikshavn` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA SOSU` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Mariagerfjord` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Vejle` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Århus` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_FOA Varde` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_PMF Sydøstjy,Nedlagt` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Brønderslev,Nedl` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Holstebro` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_Kalundborg,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Kolding` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Lolland` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_FOA Sjælland omr Hol` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF mellem broerne,N` = c(0L,
0L, 0L, 0L, 0L, 0L), Afd_navn_ind_LFS = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Vestlolland,Nedl` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Skive` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_FOA Sønderjylland` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Vojens,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Helsingør,Nedlag` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Nordsjælland` = c(0L,
1L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA 1` = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_FOA Frederikssund` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Fyn` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_FOA Bornholm` = c(0L, 0L, 0L, 0L,
0L, 0L), `Afd_navn_ind_Odsher-Svinn,Nedlagt` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Sjælland omr Nor` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Vendsyssel,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Lillebælt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Roskilde` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Fredericia,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Ringsted,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Middelfart,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Østlolland,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_TF,Nedlagt` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Morsø,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Køge` = c(0L, 0L,
0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Ringkøb,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Guldborgsund` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Ribe,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_Sydsjælland, Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Sjylland,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA/PMF Kbh. Syd` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Viborg amt,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_Møn, Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Himmerland,Nedla` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Århus,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Sydsjælland` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Kbh/frb,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF afdeling 4` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_FOA Sjælland omr Mid` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Frederiksborg,Ne` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF afdeling 1` = c(1L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_PMF Silkeborg,Nedlag` = c(0L,
0L, 0L, 0L, 0L, 0L), Afd_navn_ind_Afd.99 = c(0L, 0L, 0L,
0L, 0L, 0L), `Afd_navn_ind_PMF Bornholm,Nedlagt` = c(0L,
0L, 0L, 0L, 0L, 0L), `Afd_navn_ind_Tidl. PMF` = c(0L, 0L,
0L, 0L, 0L, 0L), MedlemstypeOmråde_ind_Erhvervsaktiv = c(1L,
1L, 1L, 1L, 1L, 1L), MedlemstypeOmråde_ind_Pensionist = c(0L,
0L, 0L, 0L, 0L, 0L), MedlemstypeOmråde_ind_Hvilende = c(0L,
0L, 0L, 0L, 0L, 0L), MedlemstypeOmråde_ind_Efterløn = c(0L,
0L, 0L, 0L, 0L, 0L), MedlemstypeOmråde_ud_Erhvervsaktiv = c(1L,
1L, 1L, 1L, 0L, 0L), MedlemstypeOmråde_ud_Efterløn = c(0L,
0L, 0L, 0L, 0L, 0L), MedlemstypeOmråde_ud_Pensionist = c(0L,
0L, 0L, 0L, 1L, 1L), MedlemstypeOmråde_ud_Hvilende = c(0L,
0L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Fuldtid o 30 år u/efbid` = c(0L,
0L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Fleksibel efterløn, fuldtid` = c(0L,
0L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Anden medlemstype` = c(0L,
0L, 0L, 1L, 0L, 0L), `Medlemstype_ud_Pensionist over 65 år` = c(0L,
0L, 0L, 0L, 1L, 1L), `Medlemstype_ud_Fuldtid o 60 år med efterlønsbevis` = c(0L,
0L, 1L, 0L, 0L, 0L), `Medlemstype_ud_Fuldtid m/efterlønsbidrag` = c(0L,
0L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Forbund, fuldtid` = c(1L,
1L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Pensionist under 65 år` = c(0L,
0L, 0L, 0L, 0L, 0L), `Medlemstype_ud_Fuldtid u 30 år u/efbid` = c(0L,
0L, 0L, 0L, 0L, 0L), `Sektor_ud_Pædagogisk Sektor` = c(1L,
0L, 0L, 0L, 0L, 0L), `Sektor_ud_Social- og Sundhedssektoren` = c(0L,
1L, 0L, 1L, 1L, 0L), `Sektor_ud_Teknik- og Servicesektoren` = c(0L,
0L, 0L, 0L, 0L, 0L), `Sektor_ud_Uden sektor` = c(0L, 0L,
0L, 0L, 0L, 0L), `Sektor_ud_Kost- og Servicesektoren` = c(0L,
0L, 1L, 0L, 0L, 1L), Fagruppe_ud_Dagplejere = c(0L, 0L, 0L,
0L, 0L, 0L), Fagruppe_ud_Sygehjælpere = c(0L, 0L, 0L, 1L,
0L, 0L), Fagruppe_ud_Plejere = c(0L, 0L, 0L, 0L, 0L, 0L),
`Fagruppe_ud_FOA RBR Rådhus, Biblioteks- og Regionsbetjente` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Uden sektortilhør` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Social-og sundhedshjælpere` = c(0L,
1L, 0L, 0L, 0L, 0L), Fagruppe_ud_Køkken = c(0L, 0L, 0L, 0L,
0L, 0L), Fagruppe_ud_Rengøring = c(0L, 0L, 0L, 0L, 0L, 1L
), `Fagruppe_ud_Social-og sundhedsassistenter` = c(0L, 0L,
0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Plejehjemstekniker` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Hjemmehjælpere = c(0L, 0L,
0L, 0L, 1L, 0L), `Fagruppe_ud_Dagplejepædagoger mv` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Pædagogmedhjælpere og pædagogiske assistenter` = c(1L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Portører = c(0L, 0L, 0L,
0L, 0L, 0L), `Fagruppe_ud_Personale ved højskoler og private kantiner mv` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Plejehjemsassistenter = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Formænd under Formandsoverenskomsten` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Brand og Redning` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Beskæftigelsesvejledere = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Værksstedsassistenter/-ledere` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Omsorgsmedhjælpere og pædagogiske assistenter` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Trafikservice` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Ledere og Mellemledere (Tidl. Hjemmehjælpsledere)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Serviceassistenter og -medarbejdere` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Ledende servicepersonale` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Øvrige indenfor social-og sundheds sektor` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Regionsansatte uden for FOA` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_LFS, dag` = c(0L, 0L, 0L,
0L, 0L, 0L), `Fagruppe_ud_FOA Teknisk Ledelse` = c(0L, 0L,
0L, 0L, 0L, 0L), Fagruppe_ud_Handicapledsagere = c(0L, 0L,
0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Søfart` = c(0L, 0L, 0L,
0L, 0L, 0L), `Fagruppe_ud_Øvrige indenfor teknik-og service sektoren` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Sport (Bade- og Idrætsassistenter)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Parkering` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Husmedhjælpere i staten` = c(0L,
0L, 1L, 0L, 0L, 0L), `Fagruppe_ud_Øvrige indenfor pædagogisk sektor` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Kantineledere = c(0L, 0L,
0L, 0L, 0L, 0L), `Fagruppe_ud_LFS, døgn` = c(0L, 0L, 0L,
0L, 0L, 0L), Fagruppe_ud_Handicaphjælpere = c(0L, 0L, 0L,
0L, 0L, 0L), `Fagruppe_ud_Servicechefer/-ledere og teamkoordinatorer` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Specialarbejdere = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Øvrige indenfor Kost-og service sektoren` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Bybuschauffører` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Håndværkere = c(0L, 0L,
0L, 0L, 0L, 0L), `Fagruppe_ud_Neurofysiologi assistenter` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Vaskeripersonale = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Teknik og Service (Skoler)` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Fodterapeuter = c(0L, 0L,
0L, 0L, 0L, 0L), `Fagruppe_ud_UDGÅET Idrætsassistenter` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Legepladsansatte = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_UDGÅET Arbejdsledere` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Rengøringsledere = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Pædagogiske konsulenter` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Piccoloer og Piccoliner` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Tilsynsførende assistenter` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Operationsteknikere = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Kedel-, maskin- og motorpassere` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_Pædagogiske pladsanvisere` = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_FOA Ambulance` = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Gymnastikpædagoger = c(0L,
0L, 0L, 0L, 0L, 0L), Fagruppe_ud_Miljøkontrollører = c(0L,
0L, 0L, 0L, 0L, 0L), `Fagruppe_ud_UDGÅET Skolebetjente/-pedeller og -medhjælpere` = c(0L,
0L, 0L, 0L, 0L, 0L), Stilling_ud_Dagplejere = c(0L, 0L, 0L,
0L, 0L, 0L), Stilling_ud_Sygehjælpere = c(0L, 0L, 0L, 1L,
0L, 0L), Stilling_ud_Anden_stilling = c(0L, 1L, 1L, 0L, 0L,
1L), `Stilling_ud_Social og sundhedshjælper` = c(0L, 0L,
0L, 0L, 0L, 0L), Stilling_ud_Husassistent = c(0L, 0L, 0L,
0L, 0L, 0L), `Stilling_ud_Social og sundhedsassistent` = c(0L,
0L, 0L, 0L, 0L, 0L), Stilling_ud_Hjemmehjælper = c(0L, 0L,
0L, 0L, 1L, 0L), Stilling_ud_Pædagogmedhjælper = c(1L, 0L,
0L, 0L, 0L, 0L), `Stilling_ud_Pædagogisk assistent - Dag-området` = c(0L,
0L, 0L, 0L, 0L, 0L), Stilling_ud_Pædagog = c(0L, 0L, 0L,
0L, 0L, 0L), `Overflyttet_fra_akasse_Det Faglige Hus - A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_BUPL-A-Børne- og ungdomspædagogernes A-k` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Ikke overflyttet` = c(1L,
1L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_HK Hovedstaden` = c(0L,
0L, 1L, 0L, 0L, 1L), `Overflyttet_fra_akasse_3F-Fælles faglig A-kasse` = c(0L,
0L, 0L, 1L, 0L, 0L), `Overflyttet_fra_akasse_Huslige arbejderes a-kasse` = c(0L,
0L, 0L, 0L, 1L, 0L), `Overflyttet_fra_akasse_Pædagogiske Medhjælperes Fælles A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Kvindelige Arbejderes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_KRIFA-Kristelig A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_bryggeriarb. a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_NNF-Fødevareforbundets A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Frisørfagets og keramikernes a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_DLF-A Lærernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_TL-Teknikernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Ledernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Træ-Industri-Bygs arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Business Danmarks A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Træindustriarb. arb.løsh.kas.` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Beklædnings- og Tekstilarbejder A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_DSA-Din Sundhedsfaglige A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_FTF-A Funktionærernes og Tjenestemænd.` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Metalarbejdernes Arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_FFA-Frie Funktionærers A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Grafisk Arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_kommunalarb. arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_DANA-A-kasse for selvstændige` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_RBF's Arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_FOA-Fag og Arbejdes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_hotel. og rest.pers. a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_ASE = c(0L, 0L,
0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Funktionærernes og Servicefagenes A-kas.` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_SL-Socialpædagogernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Min A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_A-kasse for Journalistik, Kommunikation` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Gastronomernes a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Forsvarets Arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_CA A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_BFA-Byggefagenes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_MA-Magistrenes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_AAK-Akademikernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Norge = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_EL-Fagets A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Færøerne = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Tjenerne, musik. og artis. a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Sverige = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Tyskland = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Akademikernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Murerfagets arb.løsh.kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Frisører, Artister og Maritim A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Bogb.- og kartonagearb. a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Island = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Storbritanien = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Bogtrykfagets a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Sø-restaurationens a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Prosa og Merkonomernes A-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Spanien = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Irland = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Jurist- og økonom. a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Journalisternes Arbejdsløshedskasse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Overflyttet_fra_akasse_Reprofagets a-kasse` = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Grækenland = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Holland = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_3.lande = c(0L,
0L, 0L, 0L, 0L, 0L), Overflyttet_fra_akasse_Østrig = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Ingen Hverv` = c(1L,
1L, 1L, 1L, 1L, 1L), `Hverv_FoaHvervTypeNavn_ud_Andre hverv` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Sektorbestyrelse = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Andre afdelingshverv` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Afd. sektorformand` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Afdelingsbestyrelse = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Bestyrelsesudvalg = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_SOSU-uddannelsesråd` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Afdelingsnæstformand = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Ungdomsansvarlig = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Ældreråd = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Fællesbest. SOSU` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_PGU uddannelsesråd` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Klubformand = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_HB-suppleant(amt)` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Amtselevkoordinator = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_AMU udd-udvalg` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_2. HB-suppl. (sekt)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Faglig sekretær` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Afd. daglige ledelse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Elevansvarlig(SOSU)` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Gæstelærer = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Fanebærer = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Faggrupperepræsentan = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_PGU udd-råd supplean` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Afdelingskassere = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Seniorklub = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Kritisk revisorsupp.` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Afdelingsformand = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_HB-medlem(amt)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_Kritisk revisor` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_AMU udd-udvalg suppl` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Ungdomsnetværket = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Landselevbestyrelse = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ud_Sektorformand = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_3. HB-suppl. (sekt)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ud_HB-medlem(sektor)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Ingen Hverv` = c(1L,
1L, 1L, 1L, 1L, 1L), `Hverv_FoaHvervTypeNavn_ind_Andre hverv` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Andre afdelingshverv` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Bestyrelsesudvalg = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Sektorbestyrelse = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Gæstelærer = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_2. HB-suppl. (sekt)` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Afdelingsbestyrelse = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Afd. daglige ledelse` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_SOSU-uddannelsesråd` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Afd. sektorformand` = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Fanebærer = c(0L,
0L, 0L, 0L, 0L, 0L), Hverv_FoaHvervTypeNavn_ind_Sektornæstformand = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Kritisk revisor` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_Fællesbest. SOSU` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_HB-medlem(sektor)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_FoaHvervTypeNavn_ind_1. HB-suppl. (sekt)` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_Tillidshverv_ind_MED SU/AMO nederste` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_Tillidshverv_ind_MED SU/AMO næst nederst` = c(0L,
0L, 0L, 0L, 0L, 0L), `Hverv_Tillidshverv_ind_Lokalt MED udvalg supp.` = c(0L,
0L, 0L, 0L, 0L, 0L)), row.names = c(NA, -6L), class = c("tbl_df", "tbl",
"data.frame"))
Problem
Your variable names are unclean. For instance, they include spaces.
Solution
To use the formula interface, you must first clean up the variable names. An easy alternative is to use the janitor package. For instance:
library(janitor)
data_train <- clean_names(data_train)
model_reg_tree <- train(
outcome ~ .,
data = data_train,
method = 'rpart',
tuneLength = 10,
trControl = kontroller_cv
)
Alternative solution
You can still use the x =, y= interface without cleaning the names, but then you should not provide the data argument. (However, I strongly suggest that you clean the variable names). For instance:
model_reg_tree <- train(
x = data_train[, names(data_train) != "Outcome"],
y = data_train$Outcome,
method = 'rpart',
tuneLength = 10,
trControl = kontroller_cv
)
I have a file with 30 columns. These include userid, itemid, moviename, rating, date and the rest are to classify genres a movie belongs to. The genre categories are column names with binary values in the rows. If a movie belongs to a genre, it has a 1 under the appropriate column and 0 otherwise. I want to calculate the average rating per genre and want to know if there is a shorter process available?
I have currently tried filtering the data by selecting each genre where the value is '1' and then calculating the average rating. But I have almost 24 genres and doing it in this way is inefficient i think. Another way I have tried is to loop through the genre columns and again filtering each genre where value is '1' but loops consume alot of time and when the data is set is large(more than 100K rows), R can play up sometimes as I have noticed.
I want to ask if there is another way which avoids a loop like melt,dcast or another method that can get the same job done?
I am providing the dput of my dataset.
dput(data)
structure(list(user_id = c(10L, 890L, 867L, 5L, 320L, 630L, 151L,
699L, 21L, 450L, 179L, 135L, 314L, 487L, 735L, 823L, 169L, 889L,
846L), item_id = c(447L, 660L, 191L, 441L, 1052L, 568L, 414L,
1061L, 872L, 33L, 302L, 581L, 568L, 280L, 181L, 503L, 498L, 207L,
497L), Movie_title = structure(c(6L, 11L, 2L, 3L, 9L, 17L, 15L,
10L, 14L, 8L, 13L, 12L, 17L, 18L, 16L, 5L, 1L, 7L, 4L), .Label = c("African Queen, The (1951)",
"Amadeus (1984)", "Amityville Horror, The (1979)", "Bringing Up Baby (1938)",
"Candidate, The (1972)", "Carrie (1976)", "Cyrano de Bergerac (1990)",
"Desperado (1995)", "Dracula: Dead and Loving It (1995)", "Evening Star, The (1996)",
"Fried Green Tomatoes (1991)", "Kalifornia (1993)", "L.A. Confidential (1997)",
"Love Jones (1997)", "My Favorite Year (1982)", "Return of the Jedi (1983)",
"Speed (1994)", "Up Close and Personal (1996)"), class = "factor"),
Rating = c(4L, 2L, 5L, 1L, 2L, 4L, 5L, 3L, 2L, 5L, 4L, 4L,
5L, 5L, 4L, 5L, 3L, 3L, 5L), Date = structure(c(7L, 15L,
12L, 4L, 1L, 2L, 9L, 8L, 19L, 14L, 18L, 10L, 6L, 16L, 5L,
11L, 17L, 13L, 3L), .Label = c("1/14/1998", "1/25/1998",
"1/5/1998", "10/1/1997", "10/13/1997", "10/26/1997", "10/27/1997",
"11/10/1997", "11/15/1997", "11/18/1997", "11/2/1997", "11/21/1997",
"11/22/1997", "12/18/1997", "12/24/1997", "12/30/1997", "3/31/1998",
"4/10/1998", "9/22/1997"), class = "factor"), unknown = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Action = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L), Adventure = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
1L, 0L, 0L), Animation = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Children = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Comedy = c(0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), Crime = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), Documentary = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Drama = c(0L,
1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L,
0L, 1L, 0L), Fantasy = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Film.Noir = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Horror = c(1L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Musical = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Mystery = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Romance = c(0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 0L,
1L, 1L, 0L), Sci.Fi = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L), Thriller = c(0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L,
0L, 0L, 0L), War = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L), Western = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Short = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), History = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Biography = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Sport = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Family = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("user_id",
"item_id", "Movie_title", "Rating", "Date", "unknown", "Action",
"Adventure", "Animation", "Children", "Comedy", "Crime", "Documentary",
"Drama", "Fantasy", "Film.Noir", "Horror", "Musical", "Mystery",
"Romance", "Sci.Fi", "Thriller", "War", "Western", "Short", "History",
"Biography", "Sport", "Family"), class = "data.frame", row.names = c(NA,
-19L))
This is a good use case for dplyr and tidyr:
library(dplyr)
library(tidyr)
dat %>% gather(genre, value, unknown:Family) %>% filter(value == 1) %>%
group_by(genre) %>% summarize(average = mean(Rating))
This code:
gathers each of the movie/genre pairs into a separate row (there will be multiple rows for each movie)
filters for only the cases when a movie belongs to a genre
groups by genre, and summarizes within each to find the average rating (you could perform other operations like the median or standard deviation as well)
the old-fashion way also works:
genres <- c('Action','Adventure','Animation')
means <- numeric(length(genres))
names(means) <- genres
for(g in genres)
meanRatings[g] <- mean(myData$Rating[mydata[,g]==1])
means