Utilizando a função obrigatorios(), obtém-se os exercícios designados, expostos na tabela a seguir.

Seção Página Exercícios
9.1 172 a,b
9.2 177 a,b


Exercícios

Seção 9.1


Item a

Identifique os primeiros 20 itens contidos no pacote methods, nativo e automaticamente carregado. Quantos itens existem lá no total?

#20 primeiros itens
head(ls(package:methods), 20)
##  [1] "addNextMethod"         "allNames"              "Arith"                
##  [4] "as"                    "as<-"                  "asMethodDefinition"   
##  [7] "assignClassDef"        "assignMethodsMetaData" "balanceMethodsList"   
## [10] "body<-"                "cacheGenericsMetaData" "cacheMetaData"        
## [13] "cacheMethod"           "callGeneric"           "callNextMethod"       
## [16] "canCoerce"             "cbind2"                "checkAtAssignment"    
## [19] "checkSlotAssignment"   "classesToAM"
#quantidade de itens 
length(ls(package:methods))
## [1] 203
#estão presentes 203 itens dentro do pacote methods!


Item b

Determine o escopo que contem cada uma das seguintes funções:

  1. read.table
  2. data
  3. matrix
  4. jpeg
#i
environment(read.table)
## <environment: namespace:utils>
#ii
environment(data)
## <environment: namespace:utils>
#iii
environment(matrix)
## <environment: namespace:base>
#iv
environment(jpeg)
## <environment: namespace:grDevices>


Item c

Use ls e um teste de equivalência de caracteres para confirmar que a função smoothScatter é parte do pacote graphics.

teste <- ls(package:graphics)[which(ls(package:graphics) == "smoothScatter")]

teste == "smoothScatter"
## [1] TRUE

Seção 9.2


Item a

Use matching posicional com seq para criar uma sequencia de valores entre -4 e 4 com incrementos de 0.2.

A função toma como argumentos, em sequencia: seq(from, to, by, ...), de modo que basta inserir os valores nessa sequencia, como demonstrado abaixo.

seq(-4,4,0.2)
##  [1] -4.0 -3.8 -3.6 -3.4 -3.2 -3.0 -2.8 -2.6 -2.4 -2.2 -2.0 -1.8 -1.6 -1.4 -1.2
## [16] -1.0 -0.8 -0.6 -0.4 -0.2  0.0  0.2  0.4  0.6  0.8  1.0  1.2  1.4  1.6  1.8
## [31]  2.0  2.2  2.4  2.6  2.8  3.0  3.2  3.4  3.6  3.8  4.0


Item b

Em cada uma das seguintes linhas de código, identifique o estilo de matching de argumentos sendo usado: exato, parcial, posicional e misto. Se misto, identifique os argumentos especificados em cada estilo.

  1. array(8:1,dim=c(2,2,2)) - misto, sendo o primeiro posicional e o seguinte exato;
  2. **rep(1:2,3)* - posicional;
  3. seq(from=10,to=8,length=5) - exato;
  4. sort(decreasing=T,x=c(2,1,1,2,0.3,3,1.3)) - exato;
  5. which(matrix(c(T,F,T,T),2,2)) - posicional tanto para matrix() quanto para which(), que por default identifica quais são TRUE;
  6. which(matrix(c(T,F,T,T),2,2),a=T) - parcial, em que o argumento a é uma abreviação para arr.ind (os índices da array devem ser retornados quando x é uma array?)