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.

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

Muestra aleatoria basada en un modelo de regresión lineal simple

de Joan Fernando Lamprea Huertas -

Hola, excelente inicio de semana. 

Tengo una pequeña cuestión con el siguiente ejercicio: 

Para el modelo de regresión lineal simple y = 50 + 10x + e, donde e tiene NID (0, 16), suponer que se usan n = 20 pares de observaciones para ajustar este modelo. Generar 500 muestras de 20 observaciones, tomando una observación para cada valor de x = 1, 1.5, 2, ... , 10 para cada muestra.

a. Para cada muestra, calcular los estimados de la pendiente y la ordenada al origen por mínimos cuadrados. Trazar histogramas de los valores muestrales de B1 y B0 

b. Para cada muestra, calcular un estimado de E(y | x = 5). Trazar un histograma de los estimados obtenidos. Comentar la forma del histograma.

c. Determinar un intervalo de confianza de 95% para la pendiente en cada muestra. ¿Cuántos de los intervalos contienen el valor verdadero B1 = 10? ¿Es lo que se esperaba?

d. Para cada estimado de E(y | x = 5) en la parte b, calcular el intervalo de confianza de 95%. ¿Cuántos de esos intervalos contienen el valor verdadero de E(y | x = 5) = 100? ¿Es lo que se esperaba?

Sucede que he intentado generar unas muestras aleatorias; sin embargo, no obedecen la condición de que esas observaciones ajustan el modelo dado anteriormente. La verdad, no sé muy bien cómo generar dichas muestras y que, las 500, se ajusten al modelo. 

Realmente, agradecería la ayuda que me puedan brindar y espero que tengan un inicio de semana productivo. 

Saludos.