Tentei rodar, mas o meu resultado dá muito diferente, qual o motivo?
> dados <- read.table("dados_boot.txt", h=T)
> 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])
[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)
There were 50 or more warnings (use warnings() to see the first 50)
>
> resultado[,1]
[1] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[10] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[19] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[28] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[37] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[46] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[55] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[64] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[73] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[82] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[91] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[100] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[109] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[118] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[127] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[136] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[145] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[154] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[163] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[172] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[181] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[190] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[199] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[208] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[217] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[226] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[235] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[244] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[253] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[262] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[271] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[280] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[289] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[298] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[307] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[316] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[325] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[334] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[343] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[352] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[361] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[370] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[379] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[388] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[397] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[406] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[415] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[424] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[433] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[442] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[451] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[460] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[469] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[478] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[487] "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500" "NA500"
[496] "NA500" "NA500" "NA500" "NA500" "NA500"
>
Como eu falei,
Basta retirar a variável "saída" da função "obs" que a saída será do tipo numeric e aí funcionará seu comando
segue função obs , corrigida
obs <- function(x){
results <- c()
for(i in 1:500){
results[i] <- mean( sample(x,replace=TRUE))
}
return(results)
}
resultado <- apply(dados,2,obs)
str(resultado)
Sent from
Nylas Mail, the best free email app for work

On Mai 18 2017, at 9:44 am, Fernando Antonio de souza <nandodesouza@gmail.com> wrote:
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@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] NA
Warning 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."
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
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)
Sent from
Nylas Mail, the best free email app for work
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."
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 list
R-br@listas.c3sl.ufpr.br
https://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.