Funciona para eliminar espacios en los extremos de una variable de tipo carácter (a la derecha, izquierda o ambos).
txt1<-c(' H o l a ')
trimws(txt1)
## [1] "H o l a"
trimws(txt1,which = 'both')
## [1] "H o l a"
trimws(txt1,which = 'right')
## [1] " H o l a"
trimws(txt1,which = 'left')
## [1] "H o l a "
Esta función hace posible unificar variables de cualquier tipo, en una sola de tipo carácter.
for (i in 1:5) {
print(paste('numero de iteracion',i,sep = ':'))
}
## [1] "numero de iteracion:1"
## [1] "numero de iteracion:2"
## [1] "numero de iteracion:3"
## [1] "numero de iteracion:4"
## [1] "numero de iteracion:5"
nombre<-'Juan'
apellido_1<-'Rodriguez'
apellido_2<-'Acevedo'
paste(nombre,apellido_1,apellido_2)
## [1] "Juan Rodriguez Acevedo"
Por defecto el argumento sep es un espacio simple: ’ ’.
fecha<-c('1841','06','19')
as.Date(paste(fecha,collapse = '-'))
## [1] "1841-06-19"
Esta función permite separar valores en una variable de tipo carácter mediante un delimitador.
nombre_completo<-c('Eduardo Ramirez Rubio')
strsplit(nombre_completo,' ')
## [[1]]
## [1] "Eduardo" "Ramirez" "Rubio"
nombre_completo<-c('Eduardo$Ramirez$Rubio')
strsplit(nombre_completo,'\\$')
## [[1]]
## [1] "Eduardo" "Ramirez" "Rubio"
nombre_completo<-c('Eduardo Ramirez Rubio')
strsplit(nombre_completo,' ')[[1]][1]
## [1] "Eduardo"
Se utiliza para extraer un subconjunto de caracteres de una variable indicando el índice de inicio y el índice final de este.
CURP<-'FABM770222MMSJNR00'
substr(CURP,5,6)
## [1] "77"
RFC<-'ABC680524P76'
substr(RFC,10,12)
## [1] "P76"
apellido_1<-'CHAVEZ'
apellido_2<-'LOPEZ'
nombre<-'JOSE'
fecha_nac<-'11/06/1986'
sexo<-'H'
entidad<-'DF'
homoclave<-'XE9'
vocal<-c('a','e','i','o','u')
ap_ctes<-function(apellido_1){
apellido_ctes<-apellido_1
for (i in 1:5) {
apellido_ctes<-gsub(toupper(vocal[i]),'',c(apellido_ctes))
}
return(apellido_ctes)
}
CURP<-paste(substr(apellido_1,1,2),
substr(apellido_2,1,1),substr(nombre,1,1),
substr(fecha_nac,9,10),substr(fecha_nac,4,5),
substr(fecha_nac,1,2),sexo,entidad,substr(ap_ctes(apellido_1),2,2),
substr(ap_ctes(apellido_2),2,2),homoclave
,sep = '')
CURP
## [1] "CHLJ860611HDFHPXE9"
El uso principal de esta función es el de sustituir valores en un vector o variable por los que se indique.
flujos_efectivo<-c('$10000','$12000','$96206')
gsub('\\$','',flujos_efectivo)
## [1] "10000" "12000" "96206"
ap_ctes<-function(apellido_1){
apellido_ctes<-apellido_1
for (i in 1:5) {
apellido_ctes<-gsub(toupper(vocal[i]),'',c(apellido_ctes))
}
return(apellido_ctes)
}
ap_ctes('SANCHEZ')
## [1] "SNCHZ"
Esta funcion se utiliza para reconocer si un patrón se encuentra en un vector o variable, devolviendo un valor lógico según sea el caso
var_char<-'RAMÍREZ'
var_char<-toupper(var_char)
vocal_acent<-c('Á','É','Í','Ó','Ú')
accent<-c()
for (i in 1:5) {
accent[i]<-grepl(vocal_acent[i],var_char)
}
sum(accent)#Indica que si hay plabra acentuadas en la variable
## [1] 1
fecha<-'2003/12/18'
grepl('/',fecha)
## [1] TRUE
sangre<-c('O+','O-','AB-')
grepl('O',sangre)
## [1] TRUE TRUE FALSE
Devuelve la posición en el vector en la que se encuentra el patrón.
lib<-c('Historia del mundo','Calculo Spivak','Historia de México','Ciencias')
lib<-tolower(lib)
grep('historia',lib)
## [1] 1 3
lib[c(1,3)]
## [1] "historia del mundo" "historia de méxico"
2.También es posible que en vez de la posición, devuelva el valor explícito ajustando el parámetro ‘value=T’.
lib<-c('Historia del mundo','Calculo Spivak','Historia de México','Ciencias')
lib<-tolower(lib)
grep('historia',lib,value = T)
## [1] "historia del mundo" "historia de méxico"
lib[c(1,3)]
## [1] "historia del mundo" "historia de méxico"
palabra<-'Actuarial'
palabra<-tolower(palabra)
grep('a',strsplit(palabra,split = '')[[1]])
## [1] 1 5 8
Se utiliza para conocer la longitud de un vector (el número de entradas).
alumnos_gp1<-c('Eduardo','Juan','Pedro','Luisa')
alumnos_gp2<-c('Eduardo','Juan','Pedro','Luisa','Francisco','Pedro','')
cerrara<-function(alumnos_gp){
if(length(alumnos_gp)<6){print('Cerrado')}
else{print('Abierto')}
}
cerrara(alumnos_gp1)
## [1] "Cerrado"
cerrara(alumnos_gp2)
## [1] "Abierto"
vec1<-c('Eduardo','Juan','Pedro','Luisa')
vec2<-c('5664821795','5569713258','5597134982','5593617426')
if(length(vec1)==length(vec2)){
cbind(vec1,vec2)
}
## vec1 vec2
## [1,] "Eduardo" "5664821795"
## [2,] "Juan" "5569713258"
## [3,] "Pedro" "5597134982"
## [4,] "Luisa" "5593617426"
nums<-c('5664821795','5569713258','5597134982','5593617426')
strsplit(nums,'')[[1]]
## [1] "5" "6" "6" "4" "8" "2" "1" "7" "9" "5"
valid<-c()
for (i in 1:length(nums)) {
if(length(strsplit(nums,'')[[i]])==10){valid[i]=T}else{valid[i]=F}
}
valid
## [1] TRUE TRUE TRUE TRUE
Esta función devuelve el número de carácteres en una variable.
nums<-c('5664821795','5569713258','5597134982','5593617426')
nums[nchar(nums)==10]
## [1] "5664821795" "5569713258" "5597134982" "5593617426"
datos<-c('Eduardo','Juan','Pedro','Luisa','Francisco','Pedro','Paulina','Ronaldinho')
datos[nchar(datos)==max(nchar(datos))]
## [1] "Ronaldinho"
Devuelve los datos que no se repiten en un vector.
vector1<-c('5664821795','5569713258','5597134982','5593617426')
vector2<-c('5664821795','5569713258','5597134982','5593617426','5569713258')
length(unique(vector1))==length(vector1)
## [1] TRUE
length(unique(vector1))==length(vector2)
## [1] FALSE
nums<-c('5664821795','5569713258','5597134982','5593617426')
unique(nchar(nums))
## [1] 10
datos<-rbinom(1000,10,.5)
unique(sort(datos))
## [1] 0 1 2 3 4 5 6 7 8 9
Contar todas las letras a (incluye mayúscula, minúscula y con acento).
“El auto más rápido del mundo es el Bugatti Chiron Super Sport 300, alcanza una velocidad de 304 mph (489.24 km/h) –limitada–, su precio de adquisición es de 2,400,000 EUR. Los velocistas lo describen como ‘It’s pretty cool’.”
En primer lugar homologo el texto a minúsculas.
texto_Na<-tolower(texto)
texto_Na
## [1] "el auto más rápido del mundo es el bugatti chiron super sport 300, alcanza una velocidad de 304 mph (489.24 km/h) –limitada–, su precio de adquisición es de 2,400,000 eur. los velocistas lo describen como 'it’s pretty cool'."
En seguida sustituyo las a por vacíos ’’.
texto_Na<-gsub('a','',texto_Na)
texto_Na
## [1] "el uto más rápido del mundo es el bugtti chiron super sport 300, lcnz un velocidd de 304 mph (489.24 km/h) –limitd–, su precio de dquisición es de 2,400,000 eur. los velocists lo describen como 'it’s pretty cool'."
Para luego sustituir las á, igual por vacíos ’’.
texto_Na<-gsub('á','',texto_Na)
texto_Na
## [1] "el uto ms rpido del mundo es el bugtti chiron super sport 300, lcnz un velocidd de 304 mph (489.24 km/h) –limitd–, su precio de dquisición es de 2,400,000 eur. los velocists lo describen como 'it’s pretty cool'."
Finalmente gracias a la función nchar() obtengo el número de letras a de la diferencia entre el vector completo y el que no las tiene.
nchar(texto)-nchar(texto_Na)
## [1] 13