La funcion que se creo tiene como objetivo generar un grafico asociado a un conjunto de datos de supervivencia. La funcion se muestra a continuación:
library(ggplot2)
library(dplyr)
library(survival)
funcion_graf <- function(df,n,a,b){
print(ncol(df))
print(names(df))
if((0<a & a <= length(names(df)))& (0<b & b <= length(names(df)))){
set.seed(123)
m <- df %>%
select((names(df)[a]),(names(df)[b])) %>%
sample_n(n)
print(m)
ggplot(m)+
xlab("Observaciones") + ylab ("Tiempo")+
geom_point(aes_(x = 1:n, y = t(m)[1,],
shape = t(m)[2,] %>% as.factor()),
size = 3)+
geom_linerange(aes( x = 1:n,
ymin = 0,
ymax = t(m)[1,]),
linetype = "solid")+
coord_cartesian(ylim = c(0, max(t(m)[1,])+5))+
coord_flip()
}else{print("El numero de colmna que ingresaste esta fuera de rango")}
}
La función recibe cuatro parametros, (df,n,a,b). El parametro df debe ser un data frame, es decir un conjunto de datos con esa estructura especifica. Los paramatros n,a,b son numeros enteros. El parametro n hace referencia al tamaño de muestra que tomaremos de nuestro conjunto, los parametro a y b indican los numeros de las columnas donde se encuentran las variables de interés.
La función recibe el conjunto de datos y muestra el numero de columnas que contiene y el vector que contiene los nombres de las columnas. Esto lo puse para saber en que rango deben estar los parametros a y b, además de facilitar la asignacion que le daremos a los parametros a y b, ya que al mostrar los nombres de las columnas es más facil identificar la posición en la que se encuentran las variables de interés. Una vez dados los parametros y que cumplan con las restricciones que tiene la funcón, lo que hace es tomar las dos columnas que elegimos y tomar una muestra aleatoria de tamaño n. Lo que sigue es graficar los datos de la forma que nos interesa.
Ahora mostraremos 3 ejemplos con distintos conjuntos de datos.
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(survival)
funcion_graf <- function(df,n,a,b){
print(ncol(df))
print(names(df))
if((0<a & a <= length(names(df)))& (0<b & b <= length(names(df)))){
set.seed(123)
m <- df %>%
select((names(df)[a]),(names(df)[b])) %>%
sample_n(n)
print(m)
ggplot(m)+
xlab("Observaciones") + ylab ("Tiempo")+
geom_point(aes_(x = 1:n, y = t(m)[1,],
shape = t(m)[2,] %>% as.factor()),
size = 3)+
geom_linerange(aes( x = 1:n,
ymin = 0,
ymax = t(m)[1,]),
linetype = "solid")+
coord_cartesian(ylim = c(0, max(t(m)[1,])+5))+
coord_flip()
}else{print("El numero de colmna que ingresaste esta fuera de rango")}
}
funcion_graf(rats,20,3,4)
## [1] 5
## [1] "litter" "rx" "time" "status" "sex"
## time status
## 1 104 0
## 2 104 0
## 3 80 0
## 4 92 0
## 5 76 0
## 6 102 0
## 7 104 0
## 8 104 0
## 9 75 0
## 10 85 0
## 11 67 0
## 12 51 0
## 13 104 0
## 14 98 0
## 15 104 0
## 16 104 0
## 17 69 0
## 18 104 0
## 19 94 1
## 20 102 0
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
library(ggplot2)
library(dplyr)
library(survival)
funcion_graf <- function(df,n,a,b){
print(ncol(df))
print(names(df))
if((0<a & a <= length(names(df)))& (0<b & b <= length(names(df)))){
set.seed(123)
m <- df %>%
select((names(df)[a]),(names(df)[b])) %>%
sample_n(n)
print(m)
ggplot(m)+
xlab("Observaciones") + ylab ("Tiempo")+
geom_point(aes_(x = 1:n, y = t(m)[1,],
shape = t(m)[2,] %>% as.factor()),
size = 3)+
geom_linerange(aes( x = 1:n,
ymin = 0,
ymax = t(m)[1,]),
linetype = "solid")+
coord_cartesian(ylim = c(0, max(t(m)[1,])+5))+
coord_flip()
}else{print("El numero de colmna que ingresaste esta fuera de rango")}
}
funcion_graf(leukemia,20,1,2)
## [1] 3
## [1] "time" "status" "x"
## time status
## 1 8 1
## 2 27 1
## 3 8 1
## 4 13 0
## 5 48 1
## 6 23 1
## 7 161 0
## 8 23 1
## 9 18 1
## 10 33 1
## 11 28 0
## 12 45 0
## 13 43 1
## 14 12 1
## 15 30 1
## 16 5 1
## 17 9 1
## 18 45 1
## 19 31 1
## 20 16 0
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
library(ggplot2)
library(dplyr)
library(survival)
funcion_graf <- function(df,n,a,b){
print(ncol(df))
print(names(df))
if((0<a & a <= length(names(df)))& (0<b & b <= length(names(df)))){
set.seed(123)
m <- df %>%
select((names(df)[a]),(names(df)[b])) %>%
sample_n(n)
print(m)
ggplot(m)+
xlab("Observaciones") + ylab ("Tiempo")+
geom_point(aes_(x = 1:n, y = t(m)[1,],
shape = t(m)[2,] %>% as.factor()),
size = 3)+
geom_linerange(aes( x = 1:n,
ymin = 0,
ymax = t(m)[1,]),
linetype = "solid")+
coord_cartesian(ylim = c(0, max(t(m)[1,])+5))+
coord_flip()
}else{print("El numero de colmna que ingresaste esta fuera de rango")}
}
funcion_graf(capacitor,20,4,5)
## [1] 5
## [1] "temperature" "voltage" "fail" "time" "status"
## time status
## 1 435 1
## 2 347 1
## 3 1087 0
## 4 258 1
## 5 1092 1
## 6 628 0
## 7 1087 0
## 8 473 0
## 9 628 0
## 10 1090 0
## 11 1087 0
## 12 455 0
## 13 241 1
## 14 315 1
## 15 332 1
## 16 572 1
## 17 380 0
## 18 380 1
## 19 315 1
## 20 241 1
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.