Foro de discusión y soporte para usuarios de R

Un foro abierto a todos los temas relacionados con R que quiera.
Nota: Una url estable a este foro es https://knuth.uca.es/R-foro.

anova pairwise con fechas

de Pere Sabio -

Buenas, estoy intentado hacer una comparación anova con fechas de avistamientos de varias especies. El punto es saber que especies tienen fechas de avistamiento estadisticamente diferentes o no. 

He cargado un archivo tal que así: 

Fecha Sp
13/03/2022 Sc
13/03/2022 Sc
28/03/2022 Sc
28/03/2022 Sc
28/03/2022 Tt
28/03/2022 Tt

 

Y usando este codigo:


panov<- aov(Fecha ~ Sp, data = CetDates)
TukeyHSD(panov)

y esto me da este error : 

Error in as.POSIXct.numeric(e) : 'origin' must be supplied

 

Se que con fechas es dificil, y he intentado poner este "origin" pero no se resuelve bien. Tambien haciendo este anova pero cambiando las fechas a intervalos de 1 o 2 semanas (quedando con numero enteros 1, 2 ,3, etc.) y pasado estos numeros a "factor", pero haciendolo directamente con las fechas, si es posible, seria mucho mejor.

Sabes como puedo resolver este error correctamente? Ya que como lo hago no sirve. O si hay alguna otra opcion para hacer este proceso?

Muchas gracias.

 

 

por que no me guarda valores, me sale null y na?? alguna idea , que hago mal aqui .

de Malvis Valenzuela -

set.seed(12345)
simulation <- function(TC,QOT,WT,A,CV,TOTruck){
#Initialization
t_collected <- 0
t_notcollected <- 0
t_recolection <- 0
tgoinglandfill<- 0
treturningblock<- 0
totalWT<- WT[1]
WremainigT<-0
AcumulatedWT<-0
AcumulatedTrashTones<-0

TotalCT <- TC[1]*(QOT)
TontrashB <- rnorm(A,CV[2],CV[1])
AvailableCT <- TotalCT -t_collected

i=1
for (i in 1:length(TontrashB[i+1])){
if(AvailableCT[i] > 0 ){
if(TontrashB[i]<= AvailableCT[i]){
if(WremainigT[i]< totalWT[i])
t_collected[i+1]<-TontrashB[i]
t_notcollected[i+1]<- 0
AvailableCT[i+1]<- AvailableCT[i+1]-t_collected[i+1]
AcumulatedTrashTones[i]<-cumsum(t_notcollected[i])
#Tiempo
t_recolection [i] <- rnorm( 1,TOTruck[1],TOTruck[2])
}else {
t_collected[i+1] <- AvailableCT[i]
t_notcollected[i+1]<- TontrashB [i]-AvailableCT[i]
AvailableCT[i+1]<- AvailableCT[i]-t_collected[i]
#Result[i,4]<- ton_garbage[i]-Result[i,2]
AcumulatedTrashTones[i]<-cumsum(t_notcollected[i])
#Result[i,6]<-sum(c_truck)
t_recolection [i+1] <- rnorm( 1,TOTruck[1],TOTruck[2])
tgoinglandfill[i+1] <- rnorm( 1,TOTruck[1],TOTruck[2])
treturningblock[i+1] <- rnorm( 1,TOTruck[1],TOTruck[2])

}
#t_journey[i] <- rnorm(n = 1,1,0.5)
#tiempo<-(t_recolection[i])
AcumulatedWT[i]<-sum(c(tgoinglandfill,treturningblock,t_recolection ))
WremainigT[i]<-totalWT[i] -AcumulatedWT[i]
AcumulatedTrashTones[i]<-AcumulatedTrashTones[i+1]


#tiemp<-cumsum(c(t_recolection,t_journey))
#Result[i,7]<-tiemp[3]
#Result[i,8]<-Result[i,7]+tiemp[3]
}
AvailableCT [i+1]<-AvailableCT [i]

t_recolection[i]<-is.na(t_recolection) + is.na(t_recolection[i])#[3]
AcumulatedWT[i]<-sum(c(tgoinglandfill,treturningblock,t_recolection))

list(t_collected=round(t_collected,2),
t_notcollected=round(t_notcollected,2))
}
}
x <- replicate(10,{
y <- simulation( TC=10,
QOT=1,
WT=8,
A=24,
CV=c(1,4),
TOTruck=c(4,2))

c(y$t_collected,y$t_notcollected,y$totalWT,
y$t_recolection,y$treturninglandfill)
})

 

x1 <- data.frame(t(x))
colnames(x1) <- c("T_collected","t_notcollected","Totalworkingtime",
"recollectiontime")

 

T_collected t_notcollected Totalworkingtime
1 NULL NULL NULL
recollectiontime NA NA NA NA NA NA
1 NULL NULL NULL NULL NULL NULL NULL
>

Error en R, o eso aparenta

de Manuela Ortiz -

Buenos dias a todos:

Me uni a este foro para encontar ayuda sobre una problematica que no se si tenia antes y creo que se dio a reinstalar R y aunque haya borrado los archivos anteriores para que fuera ocupada la nueva biblioteca esto persiste.

Se trata de lo siguiente, esto se da despues de ejecutar library(Rcmdr):

Attaching package: 'Rcmdr'

The following object is masked from 'package:base':

errorCondition

Ademas note que cuando realizaba una grafica en el R tambien aparecia lo siguiente:

Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
[tcl] invalid command name ".19.1".

Espero me puedan ayudar o al menos informarme si eso es normal (y me estoy preocupando sin necesidad)

MUCHAS GRACIAS

hola , gracias por las respuestas anteriores aqui tengo otra pregunta.

de Malvis Valenzuela -

set.seed(1234) c_truck=10 hours=8 ton_garbage=rnorm(1:5,10,5)

 3.964671 11.387146 15.422206 -1.728489 12.145623

 

me genera estos numeros donde la #4 me da -1.72 , como hacer para que no me de numero negativo?

 

 

Gracias. 

Referencias cruzadas en Bookdown

de Valen Terés Terés -

Buenas tardes:

 

Saludos a todos en mi primera incursión en el foro.

 

Hasta donde he podido ver, Bookdown permite hacer referencia a títulos, figuras, ecuaciones, tablas, etc.

 

No he sido capaz de encontrar la forma de hacer referencia a un párrafo del texto o a un número de una lista numerada.

 

Muchas gracias.

Simulacion en R

de Malvis Valenzuela -

 

Hola tengo este pequeno programa pero tengo que hacer que los camiones vayan en distintas direcciones y no se como hacerlo alguien que ayude o me dirija para continuar haciendo el programa . Mi correo es, los comentarios son bienvenidos.  Es un programa que debe hacer una recollecion de materiales en un area determinada , donde la demanda es aleatoria y la capacidad del camion y la cantidad de camiones , las toneladas y las horas son los parametros de cambio . 

Muchas Gracias .

simulation <- function(n_trucks,capacity,trash_tons,hours){


# capacity of the truck
c_truck <- runif(n_trucks,capacity[1],capacity[2])
# trash of the block
ton_garbage <- rnorm(1,trash_tons[1],trash_tons[2])
# travel number
travelnumber <- ceiling(ton_garbage/sum(c_truck))
t_recolection <- 0
t_going_l <- 0
t_returning<- 0
for (i in 1:travelnumber) {
t_recolection[i] <- rnorm(n = 1,1,0.5)
t_going_l[i] <- rnorm(n = 1,1,0.05)
t_returning[i] <- rnorm(n = 1,1,0.05)
x <- cumsum(c(t_recolection,t_going_l,t_returning))
if (x[i*3]>=hours)break

}

(Editado por Manuel Muñoz Márquez - envío original sábado, 30 de julio de 2022, 06:57)

Error en R

de Malvis Valenzuela -

Me sale este error despues de crear Workarea. Alguien sabra por que 

Workarea<-matrix(data= rnorm(n = Areas,10,5), nrow = Areas,ncol = Areas )

 

Error in rnorm(n = Areas, 10, 0.8:1.33) : invalid arguments
In addition: Warning message:
In rnorm(n = Areas, 10, 0.8:1.33) : NAs introduced by coercion

Acerca de dos gráficos en R

de Joan Fernando Lamprea Huertas -

Hola, buen día. 
Tengo que realizar un gráfico de probabilidad normal con los residuales no escalados (sin aplicar normalidad ni estudentizar) y otro de los residuos estudentizados; sin embargo, no tengo muy claro cómo hacerlos. 
Este es el código que tengo hasta el momento: 

punto_10=data.frame(radio=c(1,0.9,0.8,0.7,0.6,0.5,0.4,0.3),visc=c(0.45,0.2,0.34,0.58,0.7,0.57,0.55,0.44))
punto_10
reg10 = lm(punto_10$visc~punto_10$radio)

reg10[["residuals"]]
qqplot(reg10[["residuals"]],reg10[["residuals"]])
qqnorm(reg10[["residuals"]])
sort(rstandard(reg10))
sort(residuals(reg10))
sort(studres(reg10))


pi<-NULL
for(i in 1:length(reg10[["residuals"]])){
pi[i]<-(i-0.5)/length(reg10[["residuals"]])
}

plot(sort(residuals(reg10)),pi)

La función "qqnorm" realiza gráficos de probabilidad normal, pero ese es el inconveniente: normalizados (para el caso de los residuos, usa los r-Student). Y los que he intentado hacer, es como los hacen con minitab, que es la residuo con el cuantil correspondiente; sin embargo, no puedo hacer la recta para verificar si se cumple la normalidad. 

Mi pregunta es, ¿Cómo se realiza un gráfico con recta, a través de una función, para los residuos sin escalar y estudentizados? 
En caso de que no exista una función que los realice, ¿cómo adiciono una recta que corresponda a los puntos que deseo graficar? Ya que también lo intenté con la función "qqline", pero también los normaliza. 

Quedo atento a sus respuestas y agradezco la ayuda que me puedan brindar. 

Seleccionar columnas de una tabla, teniendo en cuenta un filtro

de Joan Fernando Lamprea Huertas -

Hola, buen día. 

 

Tengo una pequeña consulta: ¿Se pueden seleccionar columnas de una tabla, teniendo en cuenta que hay un filtro aplicado? Es decir, por ejemplo, tengo una tabla con tres columnas: Nombre completo, cédula, edad, sexo, etc. Para fines prácticos, nos piden únicamente la edad, organizada de mayor a menor, y el nombre completo (asociado a la edad ordenada). ¿Hay una forma de extraer ambas columnas, con el filtro de menor a mayor aplicado, sin que se modifique la información de la persona? 

Quedo atento a sus respuestas y les agradezco la atención.

 

Saludos.

Versión 5.1-1 de RcmdrPlugin.UCA liberada

de Manuel Muñoz Márquez -

Se ha liberado la versión 5.1-1 de RcmdrPlugin.UCA que incluye como principal novedad el test de Kolmogorov.Smirnov para la comparación de la distribución de dos muestras.

Se puede instalar usando el gestor de paquetes habitual o ejecutando en R la instrucción

install.packages('RcmdrPlugin.UCA')

Más información en la página del paquete https://knuth.uca.es/RcmdrPlugin.UCA