Discretization by only one column of the dataset using mdlp()
library(discretization)
data("CO2")
disc<- mdlp(CO2[4])
I just need to discretize the 4th column of the data set provided. Then it is getting an Error in data[1, ] : incorrect number of dimensions
error. Could you please help me to fix this.
1 answer
-
answered 2018-03-13 21:33
mysteRious
I don't know if this is what you're going for, but 1) mdlp needs more than just one column of data, and 2) it also has trouble working with complex objects like CO2. Here is one way to make it execute:
CO2.df <- as.data.frame(CO2) # strips the extra info mdlp(CO2.df[,4:5])
See also questions close to this topic
-
Customized Line Break for ggplot
I can create quality control charts with the qicharts2 package.
library(tidyverse) library(qicharts2) (plot1 <- qic(age, data = tail(cabg, 100), chart = 'i', ylab = 'Years', xlab = 'Patient #', ) ) p1 <- plot1$data
Then I can customize the charts.
(plot2 <- ggplot(p1, aes(x, y)) + geom_ribbon(ymin = p1$lcl, ymax = p1$ucl, fill = "black", alpha = 0.05) + geom_line(color = "black", size = 1) + geom_line(aes(x, cl)) + geom_point(color = "black" , fill = "black", size = 2) + geom_point(data = p1 %>% filter(sigma.signal == TRUE), color = "red", size = 2) + ggtitle(label = NULL) + labs(x = NULL, y = NULL) + scale_y_continuous(breaks = seq(0, 100, by = 10)) + coord_cartesian(ylim = c(0, 100)) + theme_bw() + theme( text = element_text(size = 18), axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 0.6), axis.text.y = NULL, panel.grid.major = element_blank(), panel.grid.minor = element_blank(), strip.text.x = element_text(size = 14, color = "black", angle = 0)) )
Using the
part
argument, in my qichart, causes it to split at the specified part point(s).(plot3 <- qic(age, data = tail(cabg, 100), chart = 'i', part = c(70, 85), ylab = 'Years', xlab = 'Patient #', ) ) p3 <- plot3$data
What do I need to add to my customized ggplot2 syntax, below, to get it to part in the same manner? What I've got does everything, EXCEPT, it doesn't part like in the syntax directly above.
(plot4 <- ggplot(p3, aes(x, y)) + geom_ribbon(ymin = p3$lcl, ymax = p3$ucl, fill = "black", alpha = 0.05) + geom_line(color = "black", size = 1) + geom_line(aes(x, cl)) + geom_point(color = "black" , fill = "black", size = 2) + geom_point(data = p3 %>% filter(sigma.signal == TRUE), color = "red", size = 2) + ggtitle(label = NULL) + labs(x = NULL, y = NULL) + scale_y_continuous(breaks = seq(0, 100, by = 10)) + coord_cartesian(ylim = c(0, 100)) + theme_bw() + theme( text = element_text(size = 18), axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 0.6), axis.text.y = NULL, panel.grid.major = element_blank(), panel.grid.minor = element_blank(), strip.text.x = element_text(size = 14, color = "black", angle = 0)) )
-
Error- Lmer in R 'les longueurs des variables diffèrent'
Bonjour tout le monde,
J'essaie d'analyser mes données mais ai quelques soucis à établir un modèle. Voici un aperçu de mon jeu de données.enter image description here
J'ai effectué une expérience durant laquelle j'ai mesuré à un intervalle régulier (7 jours) et déterminé les stades de développement de têtards, évoluant à différentes températures, et issus de différentes populations. Ceux-ci étaient maintenus aux températures test, par population mais également par "size" (deux groupes : [4-5.99mm] et [6-7.99mm], correspondant à la longueur de la tête au début de l'expérience, lors de la première mesure- Measurement 1-). "Size" est utilisé dans le tableau pour différencier les individus à la base 'petits == 4-5mm' et 'grands == 6-7mm'.
'HL' correspond à la longueur de la tête en mm, 'TL' à la longueur total en mm. Enfin, 'Temp_IZQ' correspond aux traitements de température.
C'est une expérience d'étude du développement et de la croissance.
J'essaie de construire le modèle suivant (medidasT2IZQ_MS = data) :
model1T2_IZQ<-lmer(medidasT2IZQ_MS$HL[medidasT2IZQ_MS$Measurement==4]~medidasT2IZQ_MS$Population+medidasT2IZQ_MS$Temp_IZQ +(1|medidasT2IZQ_MS$HL[medidasT2IZQ_MS$Measurement==1]))
Avec comme variables explicatives la population, la température, et je souhaiterais également 'corriger' les longueurs mesurées à la fin de l'expérience (Measurement 4) en incluant les longueurs mesurées au début de l'expérience (Measurement 1) -ce qui serait mon random effect-.
Je n'arrive pas à écrire un modèle correct. Un fait important est que dans chaque 'enclos' se trouvaient plusieurs individus et que le suivi de semaine en semaine n'a pas été réalisé par individu mais par enclos (une moyenne par enclos, donc pour tous les individus, chaque semaine). C'est-à-dire que d'une semaine à l'autre, je ne peux pas attribuer les mesures aux individus.
J'obtiens le message d'erreur suivant : "Error in model.frame.default(drop.unused.levels = TRUE, formula = medidasT2IZQ_MS$HL[medidasT2IZQ_MS$Measurement == : les longueurs des variables diffèrent (trouvé pour 'medidasT2IZQ_MS$Population')"
Je pense que le problème est dû à mes conditions telles que [medidasT2IZQ_MS$Measurement==4] ou bien cela pourrait être dû au fait qu'entre les mesures 1,2,3,4 j'ai eu des morts et donc le nombre d'observations n'est pas le même d'une semaine à l'autre.
Enfin, peut-être que je pourrais modifier mon tableau afin de mettre les différentes mesures en colonne (Measurement 1= 1 col; Measurement 2=Une deuxième colonne) et non en lignes. Cependant, étant donné que le nombre d'observations n'est pas toujours le même d'une mesure à l'autre, cela posera également problème.
Est-ce que quelqu'un sait comment m'aider avec cela?
Merci beaucoup.
Marine.
-
Filling missing dates in R
I would like some help regarding a data frame transformation required for an analysis. My data consists of a large amount of individuals with all their historic employment. "EX" is a code representing the reason for ending employment. Something like this:
id Date_start Date_end EX 13 "2001-02-01" "2001-05-30" A 13 "2002-03-01" "2010-06-02" B 14 ... ... ...
So what I would like to do is to "fill in the gaps". This may not be easy but its even more difficult because I want it aggregated by id and each new row should have the EX value of the row before, like this:
id Date_start Date_end EX 13 "2001-02-01" "2001-05-30" A 13 "2001-05-31" "2002-02-28" A 13 "2002-03-01" "2010-06-02" B 14 ... ... ...
I believe the trick would be some kind of lag and aggregate but I'm totally lost.
Thank you very much,
Juan A. Carbonell