[R-br] Indexar um vetor no comando "for"

Fernando Antonio de souza nandodesouza em gmail.com
Quinta Maio 18 09:44:09 BRT 2017


Clodoaldo

Estou sem acesso a meu computador aqui é por as não posso testar. Tente
rodar a função obs se a variável saida. Acredito que ela está transformando
a saída em carácter e por isso a saída.

Assim q acessar meu PC testo e lhe confirmo.

obs <- function(x){

       results <- c()
       for(i in 1:500){

           results[i] <- mean(sample(dados,replace=T))

       }

return(results)
}

Em 18/05/2017 9:24 AM, "Clodoaldo José Figueredo" <
clodoaldo.figueredo em ifc-araquari.edu.br> escreveu:

Caro Fernando (e demais colegas)

Gostaria de agradecer sua grande ajuda, mas preciso tirar mais outras
dúvidas.
Abaixo está o código completo e a matriz dados que é base para os cálculos.
A saída que inseri é a coluna resultado [,1]

Porque não consigo calcular a média dos valores?
As saídas serão usadas como vetores (individualmente) em um outro
procedimento para uso do pacote "sem" (Modelagem de equações estruturais).
Como tira as aspas, ou não tem nada a ver?
Porque aparecem valores 4500 e 3500 no meio dos calculados? (Não tem lógica)

setwd("C:/Dados")
dados <- read.table("Dados_Boot_txt.txt", h=T)

dados

> dados   X4 X5 X15 X6 X11 X12 X13 X16 X17 X18 X19 X20 X25 X26 X27 X29
1   3  4   3  2   3   4   4   2   3   3   3   5   3   4   3   3
2   2  5   5  5   3   5   5   4   5   4   5   4   4   3   5   3
3   4  5   4  3   5   5   5   4   5   6   6   5   4   4   5   4
4   2  6   4  4   2   6   6   4   4   3   6   6   3   4   4   2
5   4  3   1  3   1   4   5   3   3   1   3   1   2   1   2   1
6   5  5   6  5   5   6   6   6   5   5   6   4   5   5   5   4
7   1  7   4  5   7   6   7   5   4   5   5   3   4   4   7   6
8   5  7   6  5   4   6   6   3   7   5   4   3   5   7   5   6
9   5  6   4  3   5   5   5   4   4   4   3   2   2   5   2   5
10  3  6   2  5   5   6   6   6   4   4   5   5   2   2   6   3
11  2  2   3  2   2   4   4   4   3   4   5   4   5   3   4   3
12  2  3   2  2   3   2   5   3   2   4   5   2   4   5   3   2
13  7  7   4  3   3   6   7   6   6   6   6   6   4   4   6   5
14  5  7   6  6   7   6   6   7   7   6   5   5   3   4   6   6
15  3  6   5  6   5   6   6   5   6   6   5   5   4   4   6   6
16  1  2   1  4   1   5   2   2   3   6   5   4   1   2   1   1
17  4  5   2  4   3   4   3   5   5   4   3   3   2   4   3   4
18  5  6   5  5   3   5   5   6   7   6   6   5   4   3   6   6
19  4  3   5  3   1   5   4   2   3   4   4   5   1   4   2   5
20  3  3   3  4   4   3   4   2   2   3   3   3   2   3   1   2


mean(dados[,1])

> mean(dados[,1])[1] 3.5


library(sem)
library(boot)

#Bootstrap (médias das replicações)


obs <- function(x){

       results <- c()
       for(i in 1:500){

           results[i] <- mean(sample(dados,replace=T))

           saida <- paste(results,i,sep="")

       }

return(saida)
}

resultado<-apply(dados,2,obs)

resultado[,1]

> resultado[,1]  [1] "3.75500" "4.1500"  "4.05500" "3.5500"  "3.8500"  "4.1500"  "3.45500" "4.75500"
  [9] "4.25500" "3.45500" "3.6500"  "3.85500" "3.9500"  "4.05500"
"3.6500"  "3.75500"
 [17] "4.2500"  "4.4500"  "3.65500" "4.2500"  "4500"    "4.15500"
"5.05500" "3.75500"
 [25] "3.8500"  "4.45500" "4.25500" "3.65500" "3.65500" "4.05500"
"4.05500" "3.3500"
 [33] "3.4500"  "4.15500" "3.15500" "3.8500"  "3.7500"  "4.3500"
"4500"    "3.15500"
 [41] "4.55500" "3.95500" "4.1500"  "4.05500" "4.2500"  "3.6500"
"3.95500" "4.35500"
 [49] "3.65500" "4.75500" "3.7500"  "3.65500" "3.6500"  "4.85500"
"3.8500"  "3.05500"
 [57] "3.85500" "3.8500"  "3.8500"  "3.35500" "3.7500"  "4.25500"
"4.25500" "3.8500"
 [65] "3.95500" "3.25500" "3.9500"  "3.75500" "3.7500"  "4.45500"
"3.65500" "3.4500"
 [73] "4500"    "4500"    "3.55500" "3.9500"  "3.75500" "4.3500"
"3.3500"  "4.25500"
 [81] "4.1500"  "4.2500"  "4.2500"  "4.2500"  "3.95500" "4.15500"
"4.35500" "4.1500"
 [89] "4.1500"  "4.05500" "3.9500"  "3.65500" "3.4500"  "3.65500"
"4.15500" "3.35500"
 [97] "3.55500" "3.75500" "3.8500"  "3.8500"  "4.25500" "4.15500"
"4500"    "3.95500"
[105] "3.95500" "3.65500" "4.4500"  "3.6500"  "3.75500" "3.55500"
"3.9500"  "4.3500"
[113] "3.9500"  "3.55500" "3.35500" "4.1500"  "3.65500" "3.75500"
"3.6500"  "3.05500"
[121] "4500"    "3.9500"  "4.05500" "3.65500" "4.15500" "4.25500"
"4500"    "4.05500"
[129] "4.7500"  "3.1500"  "3.2500"  "3.85500" "3.5500"  "3.5500"
"4.4500"  "3.45500"
[137] "3.7500"  "3.65500" "4.1500"  "4.05500" "3.35500" "4.1500"
"3.9500"  "3.1500"
[145] "4.2500"  "4.15500" "4.45500" "3.95500" "3.25500" "3.9500"
"3.9500"  "3.75500"
[153] "3.65500" "3.6500"  "3.5500"  "3.65500" "3.9500"  "4.05500"
"4.05500" "3.85500"
[161] "4.05500" "3.45500" "3.05500" "3.45500" "4.3500"  "4.6500"
"3.8500"  "4.35500"
[169] "4.05500" "4.1500"  "4.15500" "4.8500"  "3.6500"  "3.05500"
"4500"    "3.95500"
[177] "3.6500"  "4.4500"  "4.25500" "4.35500" "3.6500"  "4.2500"
"3.9500"  "4.55500"
[185] "3.9500"  "4.3500"  "4.15500" "3.35500" "3.6500"  "3.9500"
"3.85500" "3.45500"
[193] "3.65500" "3.45500" "3.7500"  "3.45500" "4.3500"  "3.7500"
"3.4500"  "3.55500"
[201] "3.75500" "3.85500" "3.8500"  "4.65500" "3.8500"  "3.6500"
"3.7500"  "3.45500"
[209] "3.65500" "4.2500"  "3.5500"  "3.75500" "4.4500"  "3.8500"
"3.45500" "3.5500"
[217] "4.5500"  "4.1500"  "3.85500" "3.6500"  "3.15500" "4.55500"
"3.5500"  "3.65500"
[225] "3.8500"  "4500"    "4.15500" "3.65500" "3.35500" "3.5500"
"3.45500" "3.65500"
[233] "3.5500"  "4.1500"  "3.5500"  "4.15500" "4.15500" "4.15500"
"4.2500"  "4.05500"
[241] "4.15500" "3.8500"  "3.85500" "4.05500" "4.1500"  "3.75500"
"3.75500" "3.9500"
[249] "3.25500" "4.15500" "3.85500" "4.25500" "4500"    "3.9500"
"4.15500" "4500"
[257] "3.9500"  "3.95500" "4500"    "4.1500"  "3.8500"  "4.5500"
"4.4500"  "3.9500"
[265] "3.95500" "4.4500"  "3.65500" "3.5500"  "4500"    "3.8500"
"3.4500"  "4.2500"
[273] "3.05500" "3.6500"  "3.6500"  "4.2500"  "3.4500"  "3.55500"
"4.25500" "3.95500"
[281] "3.4500"  "3.9500"  "4500"    "4.05500" "3.75500" "3.85500"
"3.95500" "4.3500"
[289] "3.1500"  "4.35500" "3.75500" "3.25500" "3.95500" "3.65500"
"3.75500" "4.45500"
[297] "4.2500"  "4.2500"  "3.8500"  "4500"    "3.3500"  "4.3500"
"3.6500"  "4.25500"
[305] "3.45500" "3.65500" "5.05500" "4.1500"  "3.85500" "4.1500"
"3.8500"  "3.65500"
[313] "3.55500" "4.05500" "3.45500" "3.8500"  "4.15500" "3.3500"
"3.85500" "4.45500"
[321] "4.05500" "3.8500"  "3.6500"  "4.65500" "3.95500" "3.55500"
"3.7500"  "3.95500"
[329] "3.8500"  "3.7500"  "3.55500" "3.95500" "3.55500" "3.15500"
"4500"    "3.35500"
[337] "4500"    "4.2500"  "3.85500" "3.6500"  "3.8500"  "3500"
"4.2500"  "3.55500"
[345] "3.8500"  "4.25500" "3.5500"  "3.85500" "3.8500"  "3.25500"
"3.65500" "4.4500"
[353] "4500"    "3.6500"  "4.4500"  "3.3500"  "4.45500" "4.25500"
"4.05500" "3.45500"
[361] "4.3500"  "3.85500" "4.15500" "3.65500" "3.55500" "4.3500"
"3.9500"  "4.4500"
[369] "4.15500" "4.15500" "3.85500" "4.25500" "3.7500"  "3.8500"
"4.2500"  "3.35500"
[377] "3.2500"  "3.8500"  "4.2500"  "3.95500" "3.85500" "3.25500"
"4.35500" "3.1500"
[385] "3.7500"  "3.35500" "4.1500"  "4.15500" "3.85500" "4.55500"
"3.65500" "3.75500"
[393] "3.8500"  "3.25500" "3.2500"  "3.5500"  "3.75500" "3.45500"
"4.65500" "4.15500"
[401] "3.25500" "4.1500"  "4.3500"  "4.2500"  "3.4500"  "3.9500"
"4.6500"  "4.05500"
[409] "4.35500" "3.55500" "3.8500"  "3.8500"  "3.55500" "3.8500"
"3.7500"  "4.05500"
[417] "3.65500" "3.55500" "3.5500"  "4.15500" "3.75500" "3.6500"
"3.85500" "3.3500"
[425] "3.85500" "2.95500" "3.85500" "4.45500" "3.85500" "3.45500"
"3.65500" "4.1500"
[433] "3.6500"  "3.9500"  "3.8500"  "3.15500" "3.65500" "3.4500"
"3.5500"  "4.25500"
[441] "4.2500"  "4500"    "3.6500"  "3.6500"  "3.25500" "4.25500"
"3.95500" "3.1500"
[449] "4.2500"  "3.15500" "3.65500" "4500"    "3.4500"  "4.55500"
"4.1500"  "4.5500"
[457] "3.75500" "3.85500" "4500"    "3.85500" "4.55500" "3.6500"
"4.1500"  "4.3500"
[465] "4.05500" "3.7500"  "3.95500" "3.55500" "3.1500"  "3.95500"
"3.85500" "3.3500"
[473] "3.95500" "4.25500" "3.95500" "4.1500"  "4.05500" "4.25500"
"3.75500" "4.3500"
[481] "4.3500"  "4.3500"  "4.7500"  "4.45500" "2.9500"  "3.5500"
"3.6500"  "3.55500"
[489] "4.4500"  "4500"    "3.4500"  "3.5500"  "3.45500" "3.35500"
"4.65500" "4.3500"
[497] "3.8500"  "4.3500"  "3.95500" "3.65500"


mean(resultado[,1])

> mean(resultado[,1])[1] NAWarning message:In mean.default(resultado[, 1]) :
  argumento não é numérico nem lógico: retornando NA

Muito obrigado


*"Que força é esta, eu não sei; tudo o que sei é que existe, e está
disponível apenas quando alguém está num estado em que sabe exatamente o
que quer, e está totalmente determinado a não desistir até conseguir." *
Alexander Graham Bell <http://www.pensador.info/frase/NTQwOTE1/>

Prof. Clodoaldo José Figueredo Msc - SIAPE 1800348
Métodos Numéricos para Engenharia - Matemática Aplicada
Instituto Federal Catarinense - Campus Araquari
Rodovia BR 280 - km 27 - Cx. Postal 21
CEP 89245-000 - Araquari/SC
Fone: (47) 3803-7240


Em 17 de maio de 2017 17:42, Fernando Antonio de souza <
nandodesouza em gmail.com> escreveu:

> Clodoaldo
>
> O código abaixo , ler seus dados e para cada coluna, aplica a função "obs"
> a saída será uma tabela contendo o número de colunas do seu dado fornecido
> e cada coluna conterá 500 linhas correspondente as quinhentas amostragens
> realizadas pela função "sample".
>
> Assim você pode indentificar cada vetor contendo os 500 dados amostrados
> através do index de coluna
>  por exemplo : resultado[,1]
>
> Espero ter ajudado
>
> A disposição
>
> dados <- matrix(nrow=10,ncol=16,data=rnorm(160))
>
> obs <- function(x){
>
>        results <- c()
>        for(i in 1:500){
>
>            results[i] <- mean( sample(x,replace=TRUE))
>            saida <- paste(results,i,sep="")
>
>        }
>
> return(saida)
> }
>
> resultado<-apply(dados,2,obs)
>
> =========================================
> Fernando Souza
> Zootecnista, DSc. Produção e Alimentação Animal
> Celular: (31)99796-8781 (Vivo)
> E-mail:nandodesouza em gmail.com
> <https://n1.nylas.com/link/982181c7e27b6ef6fdf684e5db1087a882a4023a059b93166c5b32c1a9842d8e/0?redirect=mailto%3Ae-mail%253Anandodesouza%40gmail.com&r=Y2xvZG9hbGRvLmZpZ3VlcmVkb0BpZmMtYXJhcXVhcmkuZWR1LmJy>
> Lattes: http://lattes.cnpq.br/6519538815038307
> <https://n1.nylas.com/link/982181c7e27b6ef6fdf684e5db1087a882a4023a059b93166c5b32c1a9842d8e/1?redirect=http%3A%2F%2Flattes.cnpq.br%2F6519538815038307&r=Y2xvZG9hbGRvLmZpZ3VlcmVkb0BpZmMtYXJhcXVhcmkuZWR1LmJy>
> Blog: https://producaoanimalcomr.wordpress.com/
> <https://n1.nylas.com/link/982181c7e27b6ef6fdf684e5db1087a882a4023a059b93166c5b32c1a9842d8e/2?redirect=https%3A%2F%2Fproducaoanimalcomr.wordpress.com%2F&r=Y2xvZG9hbGRvLmZpZ3VlcmVkb0BpZmMtYXJhcXVhcmkuZWR1LmJy>
> ==========================================
>
> Sent from Nylas Mail
> <https://n1.nylas.com/link/982181c7e27b6ef6fdf684e5db1087a882a4023a059b93166c5b32c1a9842d8e/3?redirect=https%3A%2F%2Fnylas.com%3Fref%3Dn1&r=Y2xvZG9hbGRvLmZpZ3VlcmVkb0BpZmMtYXJhcXVhcmkuZWR1LmJy>,
> the best free email app for work
>
>
> On Mai 17 2017, at 4:19 pm, Clodoaldo José Figueredo via R-br <
> r-br em listas.c3sl.ufpr.br> wrote:
>
>> Na rotina abaixo eu preciso gravar cada vetor results para os 16 valores
>> de j. Preciso colocar um índice porque esses 16 resultados formarão uma
>> nova matriz com 16 colunas e 500 linhas.
>> Como indexar os vetores results no comando "for" e montar a nova matriz?
>>
>> for(j in 1:16){
>> y <- dados[,j]
>> qqnorm(y);qqline(y)
>> mean(y)
>> results <- c()
>> for(i in 1:500){ results[i] <- mean( sample(y,replace=T))}
>> results
>> qqnorm(results);qqline(results)
>> mean (results)
>> }
>>
>> Obrigado
>>
>> Clodoaldo
>>
>> *"Que força é esta, eu não sei; tudo o que sei é que existe, e está
>> disponível apenas quando alguém está num estado em que sabe exatamente o
>> que quer, e está totalmente determinado a não desistir até conseguir." *
>> Alexander Graham Bell
>> <http://www.pensador.info/frase/NTQwOTE1/&r=Y2xvZG9hbGRvLmZpZ3VlcmVkb0BpZmMtYXJhcXVhcmkuZWR1LmJy>
>>
>> Prof. Clodoaldo José Figueredo Msc - SIAPE 1800348
>> Métodos Numéricos para Engenharia - Matemática Aplicada
>> Instituto Federal Catarinense - Campus Araquari
>> Rodovia BR 280 - km 27 - Cx. Postal 21
>> CEP 89245-000 - Araquari/SC
>> Fone: (47) 3803-7240
>>
>>
>> _______________________________________________
>> R-br mailing listR-br em listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
>>
>>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170518/597ee1dc/attachment.html>


Mais detalhes sobre a lista de discussão R-br