4.3 Functions

Crea una función impares que dado un vector devuelva la cantidad de elementos impares que contiene.

x<-c(1,3,4,5,6,7,8,9)
impares<-function(vector)
{
   sum(vector%%2==0)
}

print(impares(x))
## [1] 3

m<-matrix(nrow=3, ncol=3) m[2,3]<-2 m[3,1]<-4

cambio<-function(ma)
{
  ma[which(is.na(ma))] <- 0
  ma
}
m<-cambio(m)
m
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,]    1    2    3    4    5    6    7    8    9    10
## [2,]   11   12   13   14   15   16   17   18   19    20
## [3,]   21   22   23   24   25   26   27   28   29    30
help(paste)

x<-c(1,2,3,4,5,5,6,3,2,1,4)
x
##  [1] 1 2 3 4 5 5 6 3 2 1 4
y<-c(1,3,1,5,6,8,3,4)
y
## [1] 1 3 1 5 6 8 3 4
unir<-function(vx,vy)
{
  repetidos<-c(vx,vy)
  unique(repetidos)
}

print(sinrepetidos<-unir(x,y))
## [1] 1 2 3 4 5 6 8
frase<-"esto es una frase cualquiera, para un ejercicio en r"

vyc<-function(frase)
{
  vocales<-c("a","e","i","o","u")
  consonantes<-setdiff(letters,vocales)
  splitFrase<-strsplit(frase, split = "")
  splitVocales<-intersect(vocales,splitFrase[[1]])
  splitConsonantes<-intersect(consonantes,splitFrase[[1]])
  salida<-list(vocales=splitVocales,consonantes=splitConsonantes)
}

salida<-vyc(string)
salida
## $vocales
## [1] "a" "e" "i" "o" "u"
## 
## $consonantes
##  [1] "c" "f" "j" "l" "n" "p" "q" "r" "s" "t"

*Crea una función partir que dado un vector v y dos valores x e y (siendo y opcional), retorne un vector con los valores que aparecen luego del primer x y hasta el primer y. De no indicarse el valor de y se devolveran todos los valores que aparecen luego del primer x hasta el final del vector.

partir<-function(vec,x,y=length(vec))
{
  vec[x:y]
}

partir(c(1,2,3,4,5,6,7),3)
## [1] 3 4 5 6 7