Uso de Frames en R

Los Frames son estructuras que admiten diferentes tipos de datos en la misma estructura y que permiten operar con ellas siempre y cuando los tipos de datos lo permitan.

datos<-matrix(c(20,65,174,22,70,180,19,68,170),nrow=3,byrow=T)
dimnames(datos)<-list(c("peter","juan","maria"), c("edad","peso","altura"))
provincia<-c("cadiz","soria","madrid")
frame<-data.frame(datos,provincia)
frame
      edad peso altura provincia
peter   20   65    174     cadiz
juan    22   70    180     soria
maria   19   68    170    madrid

mean(frame[,"edad"]) # El calculo no da errores aunque se tengan diferentes tipos de datos
[1] 20.33333

apply(frame,2,mean) # Muestra un error ya que una de las variables es categórica y no numérica
     edad      peso    altura provincia 
       NA        NA        NA        NA 
Warning messages...

apply(frame[,1:3],2,mean) # Evitaríamos que nos diese error si le excluirmos de la media
     edad      peso    altura 
 20.33333  67.66667 174.66667

Unir dos dataframes

Inner join: merge(df1, df2)
Outer join: merge(x = df1, y = df2, by = "id_comun", all = TRUE)
Left outer: merge(x = df1, y = df2, by = "id_comun", all.x = TRUE)
Right outer: merge(x = df1, y = df2, by = "id_comun", all.y = TRUE)
Cross join: merge(x = df1, y = df2, by = NULL)

Reemplazar caracteres especiales por tildes en todo el dataframe

library(dplyr)
library(stringr)

ciudad <- c("Francia","España","Japón")
edad <- c (25,14,25)
datos <- data.frame(ciudad, edad)

dic_caracteres_especiales <- function(x){

 if(is.character(x) || is.factor(x)){
   x <- gsub("ñ","ñ",x) 
   x <- gsub("á","á",x) 
   x <- gsub("é","é",x) 
   x <- gsub("Ã\\*","í",x) 
   x <- gsub("ó","ó",x) 
   x <- gsub("ú","ú",x)
 }else{ x }

}

datos <- mutate_all(datos, funs(dic_caracteres_especiales))
datos
 ciudad edad
1 Francia 25
2 España 14
3 Japón 25