##-------- Ler arquivo hospedado na internet --------------##
library(httr)
url <- "https://gmarcatti.github.io/dados/dados.xlsx"
GET(url, write_disk(arq <- tempfile(fileext = ".xlsx")))
# install.packages("readxl")
library(readxl)
dados <- read_excel(arq)
# dados <- read_excel("C:/dados/dados.xlsx") # se o arquivo estiver no pc
dados
# 1. identificar e quanticar as classes únicas
uni_prec <- unique(dados$prec_mm)
N <- length(uni_prec)
# 2. criar data.frame(ou tibble) receber meus resultados
library(tibble)
coefs <- tibble(prec = vector("integer", N),
b0 = vector("numeric", N),
b1 = numeric(N),
r2 = numeric(N))
# 3. como acessar os elementos no resultado do processo
lm_geral <- lm(volume ~ idade, dados)
str(lm_geral)
lm_geral$coefficients[[1]]
lm_geral$coefficients[[2]]
resumo <- summary(lm_geral)
str(resumo)
resumo$r.squared
r2func <- function(obs, est) {
r2valor <- cor(obs, est)^2
}
# 4. loop - processo de repetição
uni_prec_or <- sort(uni_prec)
for (i in 1:N) {
# filtrar a classe de interesse
dados_i <- subset(dados, prec_mm == uni_prec_or[i])
# executar os comandos para os dados filtrados
lm_i <- lm(volume ~ idade, dados_i)
# modificar a tibble adicionando os resultados
coefs[i, "prec"] <- uni_prec_or[i]
coefs[i, "b0"] <- lm_i$coefficients[[1]]
coefs[i, "b1"] <- lm_i$coefficients[[2]]
coefs[i, "r2"] <- r2func(dados_i$volume, fitted(lm_i))
#resumo <- summary(lm_i)
#coefs[i, "r2"] <- resumo$r.squared
}
coefs
# filtrar dados da classe de 800mm de precipitação
#dados_i <- subset(dados, prec_mm == uni_prec_or[1])
rep(c(1,2), each = 3)
rep(c(1,2), times = 3)
dados <- tibble(Proj = rep(c(1,2), each = 3),
Volume = c(290, 297, 328, 292, 289, 310))
# 1. identificar e quanticar as classes únicas
uni_proj <- unique(dados$Proj)
N <- length(uni_proj)
# 2. criar data.frame(ou tibble) receber meus resultados
# integer(N) é igual a vector("integer", N)
est_media <- tibble(Proj = integer(N),
Volume_medio = numeric(N))
# 3. como acessar os elementos no resultado do processo
dados$Volume
mean(dados$Volume)
# 4. loop - processo de repetição
for (i in 1:N) {
# filtrar a classe de interesse
dados_i <- subset(dados, Proj == uni_proj[i])
# executar os comandos necessários para os dados filtrados
media <- mean(dados_i$Volume)
# modificar tibble para adicionar os resultados
est_media[i, "Proj"] <- uni_proj[i]
est_media[i, "Volume_medio"] <- media
}
est_media
##-------- Ler arquivo hospedado na internet --------------##
library(httr)
url <- "https://gmarcatti.github.io/dados/dados.xlsx"
GET(url, write_disk(arq <- tempfile(fileext = ".xlsx")))
# install.packages("readxl")
library(readxl)
dados <- read_excel(arq)
# dados <- read_excel("C:/dados/dados.xlsx") # se o arquivo estiver no pc
dados
# 1. identificar e quantificar as classes de repetição
uni_gen <- unique(dados$genotipo)
N <- length(uni_gen)
# 2. criar tibble para receber os resultados
ests <- tibble(material_gen = character(N),
vol_m = numeric(N),
vol_dp = numeric(N),
hd_m = numeric(N),
hd_dp = numeric(N))
# 3. identificar como gerar e acessar os resultados
mean(dados$hd)
sd(dados$hd)
# 4. processo de repetição (loop)
for(i in 1:N) {
# filtrar classe de interesse
dados_i <- subset(dados, genotipo == uni_gen[i])
# executar os comandos necessários
# modificar tibble para adicionar os resultados
ests[i, "material_gen"] <- uni_gen[i]
ests[i, "vol_m"] <- mean(dados_i$volume)
ests[i, "vol_dp"] <- sd(dados_i$volume)
ests[i, "hd_m"] <- mean(dados_i$hd)
ests[i, "hd_dp"] <- sd(dados_i$hd)
}
ests