Creo que el problema se podría simplificar y aún obtener un resultado aceptable si simplemente haces un ajuste lineal en un entorno del punto. Como ya tienes los valores de los puntos de cada curva como dices Carlos, creo que con esa información podrías identificar un entorno adecuado en el cual ajustar linealmente. Cuéntanos como te va, Saludos !! Eric. On 24-08-20 12:52, Carlos Ortega wrote:> Hola Manuel, > > Resolver el punto de corte de forma analítica implicaría el tener > ajustada cada densidad también de forma analítica. > Una alternativa que se me ocurre es la siguiente: > > * Con la función "density()" ajustar la densidad de las presencias y > las ausencias. > o Con esta función (del paquete base) obtienes los valores x e > y. Seguro que dentro del objeto de ggplot también está, pero > con "density()" acceder a esos valores es mucho más sencillo. > * Esos valores x, y de cada densidad, los puedes ajustar con una > función polinómica, o vaya si conoces el tipo de función analítica > a la que se debieran de ajustar, puedes ajustar los valores a esos > datos (función "nls()" ). > o Y teniendo ya las funciones analíticas el problema se reduce a > solucionar el sistema de ecuaciones para encontrar los puntos > de corte (función "solve()"). > > Vaya, es un tanto elaborado, pero con un par de funciones sencillas, > se puede automatizar todo esto. :-). > > Gracias, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es> > > El lun., 24 ago. 2020 a las 14:17, Manuel Mendoza > (<mmendoza en fulbrightmail.org <mailto:mmendoza en fulbrightmail.org>>) > escribió: > > Buenas tardes, tengo una variable bimodal (/var)/, de presencias y > ausencias (1s y 0s) y otra variable, /prob/, con las > probabilidades que le asigna un modelo (entre 0 y 1). > Con: *ggplot(Preds, aes(x=prob, fill= var )) + geom_density(alpha=.3)* > obtengo la distribución de las presencias y de las ausencias, por > separado, en función del valor de probabilidad asignado. Las dos > curvas se cruzan en un punto. ¿Sabéis si hay forma de averiguar el > valor de /prob/ de ese punto analíticamente? > Gracias, > Manuel > image.png > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20200824/c6bd9cf0/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 12490 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20200824/c6bd9cf0/attachment-0001.png>
Hola a tod en s
?C?mo puedo cambiar varios datos por otros en un data frame?
Por ejemplo
col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez")
col2<-c(1,2,3,4,5,6,7,8,9,10)
df<-data.frame(col1,col2)
df$col1<-as.character(df$col1)
df
    col1 col2
    uno    1
    dos    2
      3    3
      4    4
  cinco    5
      6    6
  siete    7
      8    8
      9    9
    diez   10
Ahora quiero cambiar por ejemplo los n?meros por letras (o cualquier otro dato
en cualquier otro ejemplo)
df$col1[df$col1==3]<-"tres"
df$col1[df$col1==4]<-"cuatro"
df$col1[df$col1==6]<-"seis"
df$col1[df$col1==8]<-"ocho"
df$col1[df$col1==9]<-"nueve"
?No hay otra forma de ponerlo para no ir uno a uno?
he probado con
df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis")
pero nada, pq creo que tendr?a q ponerlos todos, solo quiero poner los que
quiero cambiar.
Gracias!
	[[alternative HTML version deleted]]
Hola:
Si codificas "col1" como un factor, lo puedes cambiar todo de una vez 
renombrando los niveles correspondientes:
 > df$col1<-as.factor(df$col1)
 > df$col1
  [1] uno   dos   3     4     cinco 6     siete 8     9     diez
Levels: 3 4 6 8 9 cinco diez dos siete uno
 > levels(df$col1)[1:5] <-
c("tres","cuatro","seis","ocho","nueve")
 > df
      col1 col2
1     uno    1
2     dos    2
3    tres    3
4  cuatro    4
5   cinco    5
6    seis    6
7   siete    7
8    ocho    8
9   nueve    9
10   diez   10
 >
Saludos,
Marcelino
El 13/09/2020 a las 14:37, Samura . escribió:> Hola a tod en s
>
> ?C?mo puedo cambiar varios datos por otros en un data frame?
>
> Por ejemplo
>
>
col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez")
> col2<-c(1,2,3,4,5,6,7,8,9,10)
>
> df<-data.frame(col1,col2)
> df$col1<-as.character(df$col1)
> df
>
>      col1 col2
>      uno    1
>      dos    2
>        3    3
>        4    4
>    cinco    5
>        6    6
>    siete    7
>        8    8
>        9    9
>      diez   10
>
> Ahora quiero cambiar por ejemplo los n?meros por letras (o cualquier otro
dato en cualquier otro ejemplo)
>
> df$col1[df$col1==3]<-"tres"
> df$col1[df$col1==4]<-"cuatro"
> df$col1[df$col1==6]<-"seis"
> df$col1[df$col1==8]<-"ocho"
> df$col1[df$col1==9]<-"nueve"
>
> ?No hay otra forma de ponerlo para no ir uno a uno?
>
> he probado con
>
>
df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis")
>
> pero nada, pq creo que tendr?a q ponerlos todos, solo quiero poner los que
quiero cambiar.
>
> Gracias!
>
>
>
> 	[[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
-- 
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
Mira la ayuda de %in% Quizás es lo que buscas. ?JIV El El dom, 13 de sep. de 2020 a la(s) 7:38 a. m., Samura . < tontito82 en hotmail.com> escribió:> Hola a tod en s > > > > ¿Cómo puedo cambiar varios datos por otros en un data frame? > > > > Por ejemplo > > > > col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") > > col2<-c(1,2,3,4,5,6,7,8,9,10) > > > > df<-data.frame(col1,col2) > > df$col1<-as.character(df$col1) > > df > > > > col1 col2 > > uno 1 > > dos 2 > > 3 3 > > 4 4 > > cinco 5 > > 6 6 > > siete 7 > > 8 8 > > 9 9 > > diez 10 > > > > Ahora quiero cambiar por ejemplo los números por letras (o cualquier otro > dato en cualquier otro ejemplo) > > > > df$col1[df$col1==3]<-"tres" > > df$col1[df$col1==4]<-"cuatro" > > df$col1[df$col1==6]<-"seis" > > df$col1[df$col1==8]<-"ocho" > > df$col1[df$col1==9]<-"nueve" > > > > ¿No hay otra forma de ponerlo para no ir uno a uno? > > > > he probado con > > > > df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") > > > > pero nada, pq creo que tendría q ponerlos todos, solo quiero poner los que > quiero cambiar. > > > > Gracias! > > > > > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > --Sent from my phone. Please excuse my brevity and misspelling. [[alternative HTML version deleted]]