




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Introdução à programação na linguagem R
Tipologia: Notas de aula
1 / 109
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Esta apostila foi desenvolvia com o objetivo de se tornar um roteiro de aula para a disci- plina Programa¸c˜ao Estat´ıstica, oferecida aos alunos do curso de Gradua¸c˜ao em Estat´ıstica pelo Departamento de Estat´ıstica da Universidade Federal Fluminense - UFF. A disciplina de Programa¸c˜ao Estat´ıstica ´e constitu´ıda por uma aula te´orica e duas pr´aticas por semana. Cada cap´ıtulo desta apostila aborda o conte´udo trabalhado em cada semana. Al´em disso a apostila ´e separada em 3 partes. Ao final de cada parte os alunos s˜ao submetidos a uma prova te´orica e uma prova pr´atica. O foco da disciplina ´e praticar t´ecnicas de programa¸c˜ao usando a linguagem de programa¸c˜ao R e tendo como plano de fundo conceitos de estat´ıstica descritiva, ´algebra linear b´asica e c´alculo. O aluno matriculado nessa disciplina j´a foi aprovado em uma disciplina introdut´oria sobre programa¸c˜ao de computadores e por isso este n˜ao ´e o seu primeiro contato com o assunto. Ao final desta disciplina espera-se que o aluno tenha n˜ao s´o aprimorado sua habilidade computacional como tamb´em refor¸cado conceitos de estat´ıstica e c´alculo j´a vistos em outras disciplinas. Para maiores informa¸c˜oes sobre a linguagem de programa¸c˜ao R entre no site oficial do projeto: http://www.r-project.org/. L´a ´e poss´ıvel obter informa¸c˜oes sobre como baixar e instalar o R em seu computador. Al´em disso, manuais introdut´orios s˜ao dispo- nibilizados gratuitamente.
i
Toda vari´avel dentro da linguagem R ´e interpretada como um objeto que pertence a uma determinada classe. Para saber qual a classe de um certo objeto podemos usar o comando class(obj), onde obj ´e o nome do objeto para o qual queremos saber a classe. Existem diversos tipos de classes. Algumas ser˜ao vistas ao longo deste curso e outras apenas em disciplinas futuras. Por exemplo, podemos citar alguns tipos b´asicos que ser˜ao vistos na aula de hoje: "numeric", "logical", "character", "matrix" e "list".
1.1 N´umeros
Os objetos num´ericos fazem parte da classe "numeric" e tratam-se dos n´umeros rais. Para criar um objeto desse tipo podemos usar, por exemplo, o comando x<-3.4. Para verificar a sua classe basta digitar class(x) no prompt do R. A resposta ser´a "numeric". Para os objetos desse tipo j´a est˜ao definidos alguns operadores (+, -, *, /) al´em de fun¸c˜ao conhecidas, como por exemplo sqrt(), log(), exp(), abs(), entre outras. Para saber mais detalhes sobre essas fun¸c˜oes ou sobre a classe "numeric" use o help do R atrav´es do comando help(log) ou help(numeric), por exemplo.
1.2 Textos
Os objetos do tipo textos fazem parte da classe "character" e ´e dessa forma que o R guarda letras ou frases. Dentro do R os textos sempre v˜ao aparecer entre aspas (""). Para criar um objeto desse tipo podemos usar, por exemplo, os comandos ch1<-"a", ch2<-"abc" e ch3<-"1". Os trˆes objetos criados s˜ao da classe "character", para checar isso basta digitar class(ch1), class(ch2) e class(ch3). Veja que class(ch3) n˜ao ´e um n´umero e sim um texto, ou seja, ´e o n´umero 1 armazenado como texto. Um comando bastante ´util para a classe "character" ´e o paste(). Ele recebe como argumento objetos do tipo "character" e retorna um ´unico objeto do tipo "character", que ´e definido pela concatena¸c˜ao dos objetos passados na entrada. Quando chamamos o comando paste() podemos indicar como os objetos ser˜ao separados usando a op¸c˜ao sep. Se o campo sep n˜ao for definido ele ser´a considerado como espa¸co. Aqui est˜ao alguns exemplos de utiliza¸c˜ao do comando paste(). Se digitarmos ch4 <- paste(ch1,ch2,"a",sep="."), ch4 ´e um objeto do tipo "character" definido por "a.abc.a". Se mudarmos o valor de sep a resposta muda complentamente: ch5 <- paste(ch1,ch2,"a",sep=""), ch5 ´e um objeto do tipo "character" definido por "aabca". Se n˜ao definirmos o sep os textos ser˜ao concatenados por espa¸cos, como j´a foi coment- dao: ch6 <- paste(ch1,ch2,"a"), ch6 ´e um objeto do tipo "character" definido por "a abc a".
Objetos e Classes
Para saber mais sobre a classe "character" consulte o help do R atrav´es do comando help(character).
1.3 L´ogicos
Os objetos do tipo l´ogico fazem parte da classe "logical" e podem ser de dois tipos: TRUE ou FALSE. Eles tamb´em podem ser simplesmente representados pelas letras T ou F. Para criar um objeto desse tipo podemos usar, por exemplo, o comando v<-TRUE ou v<-T. Para checar a sua classe basta digitar class(v) no prompt do R. A resposta ser´a "logical". Dentro do R j´a est˜ao definidos os operadores l´ogicos E (∩), representado pelo comando &&, e OU (∪), representado pelo comando ||. A tabela verdade a seguir indica a resposta para cada um desses dois operadores.
A B A&&B A||B TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE
Tamb´em podemos realizar a nega¸c˜ao usando o comando !. Por exemplo, se a <- TRUE, a! retorna FALSE; se a <- FALSE, a! retorna TRUE. Se quisermos testar se dois objetos s˜ao iguais (ou diferentes), podemos usar os coman- dos == ou != e a resposta ser´a um objeto da classe "logic". Por exemplo, se digitarmos a<-1; b<-1; c<-2, podemos testar se os objetos s˜ao iguais ou n˜ao. Digitando a==a, a==b ou a!=c termos TRUE como resposta. Digitando a==c, a!=b ou b==c termos FALSE como resposta. Para saber mais sobre a classe "logical" consulte o help do R atrav´es do comando help(logical).
1.4 Array
Dentro da linguagem R um array ´e uma sequencia de objetos do mesmo tipo. Por exemplo, podemos ter array de n´umeros reais, isto ´e uma sequˆencia de objetos do tipo "numeric", array de textos, isto ´e uma sequˆencia de objetos do tipo "character", array de “verdadeiro” ou “falso”, isto ´e uma sequˆencia de objetos do tipo "logic", ou array de qualquer outra classe dentro do R. Existem v´arias maneiras de criarmos um array, a mais simples delas ´e usando o co- mando c(), por exemplo, a<-c(1,2,3), b<-c("a", "aa") ou c<-c(T,T,F,F). Nesse caso a ´e um array de n´umeros, b um array de texto e c um array de “verdadeiro” ou “falso”. No R array n˜ao ´e uma classe, como os demais itens citados acima. Se vocˆe usar o comando class() nos objetos a , b e c as respostas ser˜ao: "numeric", "character" e "logic", respectivamente. Isso ocorre pois o R trata qualquer objeto como um array. No caso de ser um objeto simples, e n˜ao uma sequˆencia de objetos, ele interpreta como se fosse um array de tamanho 1, j´a as sequˆencias de objetos s˜ao arrays de tamanhos maiores que 1.
Departamento de Estat´ıstica - UFF 3
Objetos e Classes
Ao lado do sinal de = devemos colocar as informa¸c˜oes da matriz que est´a sendo criada:
data= array com os objetos que ser˜ao alocado dentro da matriz; ncol= n´umero de colunas da matriz; nrow= n´umero de linhas da matriz; byrow= TRUE ou FALSE que indica se os objetos ser˜ao alocados por linha ou por coluna; dimnames = lista^1 com os nomes para as linhas e colunas da matriz. Se alguma das informa¸c˜oes n˜ao for preenchida ser´a considerado o valor padr˜ao para cada entrada, que nesse caso ´e: data=NA, ncol=1, nrow=1 e dimnames = NULL. Vejamos alguns exemplos de como usar este comando e criar matrizes. Considere os seguintes comandos digitados no prompt do R:
mdat1 <- matrix(c(1,2,3,11,12,13), nrow = 2, ncol=3, byrow=TRUE) mdat [,1] [,2] [,3] [1,] 1 2 3 [2,] 11 12 13 Veja que mdat1 ´e um objeto da classe "matrix". Para verificar basta digitar:
class(mdat1) [1] "matrix"
Veja que se mudarmos o n´umero de linhas ou colunas a matriz criada ´e totalmente diferente.
mdat2 <- matrix(c(1,2,3,11,12,13), nrow = 3, ncol=2, byrow=TRUE) mdat [,1] [,2] [1,] 1 2 [2,] 3 11 [3,] 12 13 Veja agora como ficaria a matriz se ela fosse alocada por colunas (byrow=FALSE).
mdat3 <- matrix(c(1,2,3,11,12,13), nrow = 3, ncol=2, byrow=FALSE) mdat [,1] [,2] [1,] 1 11 [2,] 2 12 [3,] 3 13 Quando criamos um objeto da classe "matrix", o n´umero de linhas e de colunas tem que ser determinado logo de in´ıcio e n˜ao pode ser alterado depois. As posi¸c˜oes de uma matriz s˜ao acessadas usando o comando [ , ]. Por exemplo, se digitarmos mdat3[2,1] a resposta sera 2, que ´e o elemento guardado na segunda linha e primeira coluna. Com esse mesmo comando podemos “pegar” linhas ou colunas inteiras de uma matriz: se digitarmos mdat3[1,] a resposta ser´a um array com os elementos da linha 1; se digitarmos mdat3[,2] a resposta ser´a um array com os elementos da coluna
Se quisermos o n´umero de linhas de uma matriz podemos usar o comando nrow(), se digitarmos nrow(mdat3) a resposta ser´a 3. Para saber o n´umero de colunas de uma matriz use, de forma an´aloga, o comando ncol().
(^1) A classe lista ser´a vista na pr´oxima se¸c˜ao.
Departamento de Estat´ıstica - UFF 5
Objetos e Classes
Para saber mais sobre a classe "matrix" consulte o help do R atrav´es do comando help(matrix).
1.6 Listas
Na linguagem R a classe que guarda os objetos em forma de lista ´e denominada "list". Esse objeto guarda uma sequˆencia de objetos e a sua principal diferen¸ca para os arrays ´e que a lista pode guardar objetos de tipos diferentes. Para criarmos uma lista vamos usar o comando list(). Se simplesmente digitar- mos l1 <- list(), a l1 ser´a uma lista vazia. Se dentro dos parˆenteses colocarmos uma sequencia de objetos, a lista criada guardar´a os objetos digitados. Por exemplo: l2 <- list(1,"a",TRUE), l2 ´e uma lista com 3 objetos; ou l3 <- list(c(1,2,3),c(1,1,1,1), TRUE,c("A","a")), l3 ´e uma lista com 4 objetos. Podemos at´e criar uma lista de listas, por exemplo l4 <- list(l1,l2,l3). Enquanto usamos [ ] para acessar uma posi¸c˜ao de um array, para acessar as posi¸c˜oes de uma lista usaremos o comando [[ ]]. Dessa forma, l3[[2]] deve retornar o array c(1,1,1,1), que est´a alocado na segunda posi¸c˜ao da lista l3. Para saber quantos objetos est˜ao guardados dentro de uma lista tamb´em podemos usar o comando length(). Dessa forma length(l1) deve retornar 0, length(l2) deve retornar 3, length(l3) deve retornar 4 e length(l4) deve retornar 3.
Pergunta: Se digitarmos length(l3[[2]]), qual a resposta retornada?
Da mesma forma que os arrays, novas posi¸c˜oes de uma lista podem ser alocadas. No caso das listas usaremos o comando [[ ]] para isso. Al´em de alocar novas posi¸c˜oes ele tamb´em serve para modificar posi¸c˜oes j´a existentes. Ent˜ao, se digitarmos l2[[4]]<- c(1,2,3) a lista l2 passa a guardar na posi¸c˜ao 4 um array de tamanho 3 com os n´umeros 1,2 e 3. Para saber mais sobre a classe "list" consulte o help do R atrav´es do comando help(list).
Departamento de Estat´ıstica - UFF 6
Objetos e Classes
(c) Crie um array z onde cada posi¸c˜ao de z ´e um objeto da classe "logic". A posi¸c˜ao i de z vai guardar TRUE se a[i] for igual a b[i] e FALSE caso contr´ario. (d) Crie um array w onde cada posi¸c˜ao de w ´e um objeto da classe "logic". A posi¸c˜ao i de w vai guardar TRUE se c[i] for maior que b[i] e FALSE caso contr´ario.
1.5 No R j´a exitem alguns objetos pr´e-definidos que s˜ao chamados de constantes. Como exemplo temos a constante pi, j´a usada no exerc´ıcio (1), e os arrays letters e LETTERS: sequˆencias com as letras min´usculas e mai´usculas do alfabeto.
(a) Primeiro digite letters e LETTERS para como s˜ao exatamente esses objetos. (b) Qual a classe dos objetos letters e LETTERS? Primeiro tente responder sem usar o comando class e depois verifique a sua resposta usando tal comando. (c) Sem contar, como podemos encontrar o tamanho dos arrays letters e LETTERS? Qual o tamanho deles? (d) Se digitarmos a<-c(LETTERS,letters) qual a classe do objeto a, qual o seu tamanho e como ´e este objeto. Tente responder sem digitar e depois use o prompt para verificar a sua resposta. (e) Se digitarmos b<-paste(LETTERS,letters) qual a classe do objeto b, qual o seu tamanho e como ´e este objeto. Tente responder sem digitar e depois use o prompt para verificar a sua resposta.
1.6 Crie as seguintes matrizes no R:
(a) [,1] [,2] [1,] 1 101 [2,] 2 102 [3,] 3 103 [4,] 4 104
(b) [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 101 102 103 104
(c) [,1] [,2] [1,] 0 0 [2,] 0 0 [3,] 0 0
(d) [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 [3,] 1 1 1
Fa¸ca os itens (c) e (d) sem usar um array cheio de 0’s ou 1’s.
1.7 Digite no prompt do R o seguinte comando:
A<-matrix(c(1,2,3,4,5,6,7,8,9,10,11,12),4,3) Sem contar, usando os comandos da classe "matrix" que fornece as dimens˜oes de uma matriz, encontre o n´umero de linhas e o n´umero de colunas de A.
1.8 (a) Crie uma lista chamada minha_lista com 4 elementos. O primeiro elemento ´e o seu nome, o segundo sua idade, o terceiro um array que guarda suas medidas (altura e peso, nessa ordem) e o quarto elemento ´e outro array que guarda TRUE para as respostas afirmativas e FALSE para as respostas negativas das seguintes
Departamento de Estat´ıstica - UFF 8
Objetos e Classes
perguntas: (i) Vocˆe j´a estagiou? ; (ii) Vocˆe j´a participou de algum projeto como volunt´ario? ; (iii) Vocˆe tem interesse em assuntos relacionados ao meio ambiente?. (b) A partir do objeto minha_lista criado acesse o seu nome. (c) A partir do objeto minha_lista criado acesse a sua idade. (d) A partir do objeto minha_lista criado acesse a sua altura. (e) A partir do objeto minha_lista criado acesse o seu peso. (f) A partir do objeto minha_lista criado acesse a resposta para a pergunta “Vocˆe tem interesse em assuntos relacionados ao meio ambiente?”.
1.9 (a) Refa¸ca o item (a) do exerc´ıcios anterior agora com os dados de um amigo ou dados fict´ıcios. Chame essa nova lista de lista_2. (b) Crie agora outra lista com 2 objetos, vamos cham´a-la de dados_alunos. O primeiro objeto dessa lista ´e a lista criada no exerc´ıcio anterior, minha_lista, e o segundo objeto ´e a lista criada no primeiro item desse exerc´ıcio, lista_2. (c) A partir do objeto dados_alunos criado acesse o seu nome. (d) A partir do objeto dados_alunos criado acesse o nome do seu amigo. (e) A partir do objeto dados_alunos criado acesse a sua altura. (f) A partir do objeto dados_alunos criado acesse a resposta do seu amigo para a pergunta “Vocˆe j´a estagiou?”.
1.10 Qual a diferen¸ca entre os objeto obj1, obj2 e obj3 definidos a seguir?
obj1 <- list(1,2,3) obj2 <- list(c(1,2,3)) obj3 <- c(1,2,3)
Departamento de Estat´ıstica - UFF 9
Controle de Fluxo
Considere agora a seguinte sequˆencia de comandos:
x <- 3 if (x > 2){
Qual o valor da vari´avel y ao final desse c´odigo? Respondeu certo quem disse 6. O controle de fluxo if/else ser´a usado na maioria das vezes dentro de fun¸c˜oes, como veremos na pr´oxima semana.
2.2 for
Sintaxe:
for(i in a:b){ tarefas }
Descri¸c˜ao:
i = nome da vari´avel do loop ou la¸co. a e b = valores inteiros. No in´ıcio do loop a vari´avel i recebe o valor a e ´e incrementada (ou decrementada, se a>b) at´e chegar no valor b, que ´e o valor final da vari´avel i. As tarefas descritas dentro das chaves s˜ao executadas para cada valor de i entre a e b.
Veja a seguir um exemplo de como usar o for.
y<- for(i in 1:10){
Ao final do comando qual o valor guardado na vari´avel y? Antes de responder vamos tentar entender cada passo. Veja que y come¸ca com o valor 0. Quando i=1, y ´e incrementado de 1 unidade e passa a guardar o valor 0+1=1. Quando i=2, y ´e incrementado de mais 1 unidade e passa a guardar o valor 1+1=2. Assim por diante at´e que temos i=10, quando y recebe seu ´ultimo incremente e passa a guardar o valor 10. Veja outro exemplo.
x<- for(var in 2:5){
E agora, ao final do comando qual o valor guardado na vari´avel x? Vamos novamente entender cada passo que est´a sendo realizado. Veja que x come¸ca guardando o valor 3. Na primeira itera¸c˜ao do for a vari´avel var assume o valor 2 e dessa forma o valor de x ´e atualizado para 3+2=5. Na segunda itera¸c˜ao var assume o valor 3 e assim o valor de x ´e atualizado para 5+3=8. Na itera¸c˜ao seguinte
Departamento de Estat´ıstica - UFF 11
Controle de Fluxo
var assume o valor 4 e x ´e atualizado para 8+4=12. Na ´ultima itera¸c˜ao var assume o valor 5 e ent˜ao o valor de x recebe a sua ´ultima atualiza¸c˜ao: x = 12+5=17. Sendo assim seu valor final igual a 17. Para terminar de falar do for vale a pena apresentar um exemplo onde dois loops s˜ao combinados, um dentro do outro. Suponha que temos uma matriz 5 × 5 cheia de zeros e queremos preencher cada posi¸c˜ao dessa matriz com o n´umero 1. O c´odigo a seguir executa essa tarefa.
M <- matrix(0,ncol=5,nrow=5) for(i in 1:5){
Ao final das linhas de comando descritas acima a matriz M, que foi iniciada como uma matriz nula, passa a ser uma matriz com todas as posi¸c˜oes iguais a 1. Veja que para isso foi preciso usar dois comandos for, um para controlar o ´ındice das linhas e o outro para controlar o ´ındice das colunas. Quando um for ´e usado dentro do outro ´e preciso tomar cuidado, pois a vari´avel de um deve ser diferente da vari´avel do outro. Para o exemplo acima usamos as vari´aveis i e j. E como ficaria o c´odigo se quis´essemos preencher cada posi¸c˜ao de uma matriz com o n´umero que indica a sua linha? Isso pode ser feito como no exemplo abaixo.
M <- matrix(0,ncol=5,nrow=5) for(i in 1:5){
Veja que a ´unica diferen¸ca com rela¸c˜ao ao ´ultimo c´odigo ´e que agora em vez da posi¸c˜ao (i, j) da matriz receber o n´umero 1 ela ir´a receber o n´umero i. Implemente o exemplo no R e veja como fica a matriz M ao final dessa sequˆencia de comandos.
2.3 while
Sintaxe:
while (afirma¸c~ao){ tarefas }
Descri¸c˜ao:
Realiza as tarefas descritas dentro das chaves enquanto a afirma¸c˜ao for verdadeira. A afirma¸c˜ao tem que ser um objeto da classe "logical".
Um detalhe importante para o controle de fluxo while ´e que as tarefas devem modificar a afirma¸c˜ao de forma a garantir que em algum momento a afirma¸c˜ao vire falsa, se n˜ao vamos entrar em loop infinito. Veja mais detalhes nos exemplos a seguir. A sequˆencia de comandos a seguir usa o controle de fluxo while para criar um vetor com os n´umeros de 1 at´e 100.
Departamento de Estat´ıstica - UFF 12
Controle de Fluxo
x <- 100 for(i in 1:10){
Quais os valores das vari´aveis x e i ao final desse c´odigo? Vamos tentar acompanhar o passo-a-passo feito pelo computador para responder essa pergunta. Quando o for come¸ca a vari´avel x guarda o valor 100 e a vari´avel i o valor 1. Na primeira linha de comando dentro do for x passa a assumir o valor 100 + 100 × 1 = 200. Em seguida a condi¸c˜ao x>1000 ´e testada e como ela ´e falsa o processo n˜ao ´e interrompido. Na segunda itera¸c˜ao do for a vari´avel x come¸ca com o valor 200 e i com o valor 2. Logo na primeira linha o valor de x ´e atualizado para 200 + 200 × 2 = 600. Novamente, como a condi¸c˜ao testada no if n˜ao ´e falsa o processo n˜ao ´e interrompido. No in´ıcio da terceira itera¸c˜ao temos x=600 e i=3. Quando o valor de x ´e atualizado essa vari´avel passa a guardar o valor 600 + 600 × 3 = 2400. E nesse momento que a condi¸´ c˜ao testada passa a ser verdadeira, x>1000, e ent˜ao o processo ´e interrompido. Logo, ao final desse for a vari´avel x guarda o valor 2400 e a vari´avel i guarda o valor
Departamento de Estat´ıstica - UFF 14
Controle de Fluxo
Exerc´ıcios - 2a^ Semana
2.1 Primeiro guarde nas vari´aveis a, b e c o tamanho dos lados de um triangulo qualquer. Em seguida implemente um c´odigo no R que imprime na tela uma mensagem infor- mando se o triˆangulo em quest˜ao ´e equil´atero, is´osceles ou escaleno. Teste o c´odigo implementado para diferentes valores de a, b e c.
2.2 Para cada item a seguir implemente um c´odigo no R para encontrar o que se pede. N˜ao use os comandos seq ou algo parecido. Dica: Comece com um vetor nulo e use o(s) controle(s) de fluxo que achar adequado para preenchˆe-lo.
(a) A sequˆencia com os 100 primeiros m´ultiplos de 3. (b) A sequˆencia com todos os m´ultiplos de 3 menores que 100. (c) A sequˆencia com os 100 primeiros n´umeros ´ımpares.
2.3 Usando os controles de fluxo vistos em sala de aula, fa¸ca o que se pede. Dica: a partir do segundo item vai ser preciso usar dois loops, um dentro do outro.
(a) Primeiro crie uma matriz 10 × 10 nula. Em seguida, usando um loop, preencha toda a sua primeira linha com o n´umero 1. (b) Comece novamente com uma matriz 10 × 10 nula. Preencha cada uma de suas linhas com o n´umero que indica a linha em quest˜ao. Por exemplo, a primeira linha deve ser preenchido com 1, a segunda com 2 e assim por diante, at´e a d´ecima linha que deve ser preenchida com 10. (c) Agora comece com uma matriz 100×100 nula e implemente um loop que preenche cada coluna com o n´umero correspondente da coluna, isto ´e, a primeira coluna com o n´umero 1 e assim por diante. (d) Crie uma matriz 100 × 100 tal que as posi¸c˜oes em linhas pares recebem o n´umero 2 e as posi¸c˜oes em linhas ´ımpares o n´umero 1.
2.4 Comece cada item a seguir com uma matriz 100 × 100 nula e n˜ao use o comando seq ou um vetor pronto.
(a) Crie uma matriz diagonal 100 × 100 cujos elementos da diagonal principal s˜ao os n´umeros de 1 at´e 100 em ordem crescente. (b) Crie uma matriz diagonal 100 × 100 cujos elementos da diagonal principal s˜ao os n´umeros de 1 at´e 100 em ordem decrescente.
2.5 Usando os loops vistos em sala de aula crie as listas definidas em cada item a seguir.
(a) L1 ´e uma lista com 10 posi¸c˜oes tal que cada posi¸c˜ao i dessa lista guarda o n´umero i. (b) L2 ´e uma lista com 10 posi¸c˜oes tal que cada posi¸c˜ao i dessa lista guarda um vetor de tamanho i com todas as posi¸c˜oes iguais a 1. (c) L3 ´e uma lista com 10 posi¸c˜oes tal que cada posi¸c˜ao i dessa lista guarda um vetor com os 10 primeiros m´ultiplos de i. (d) L4 ´e uma lista com 10 posi¸c˜oes tal que cada posi¸c˜ao i dessa lista guarda um vetor com os i primeiros m´ultiplos de 2.
Departamento de Estat´ıstica - UFF 15