Desculpe se formatei incorretamente ou se o título não está correto, sou novo em R e estouro de pilha. Estou trabalhando com uma lista (chamada climas) que possui 20 quadros de dados (de cada província), cada um com colunas de ano, mês, dia e temperatura (junto com outras coisas). Procuro encontrar as linhas onde a temperatura está acima de um determinado limite, mas esse limite muda para cada província. Consegui usar o lapply para encontrar o limite para cada província, mas quando tento usar esses limites para encontrar as linhas nos dados em que a temperatura está acima do limite, a saída não está correta. Meu código retorna vários números, mas eles não parecem estar relacionados ao fato de serem maiores que o limite, e também não sei como fazer com que ele retorne a linha inteira em vez de apenas o valor da temperatura.
exemplo de lista climática:
A <- data.frame("D" = c(1:30), "T" = c(sample(10:30, size = 30, replace = TRUE)))
B <- data.frame("D" = c(1:30), "T" = c(sample(4:22, size = 30, replace = TRUE)))
C <- data.frame("D" = c(1:30), "T" = c(sample(14:35, size = 30, replace = TRUE)))
climate <- list("Alist" = A, "Blist" = B, "Clist" = C)
climate
Eu usei lapply para encontrar o limite,
thresh95 <- lapply(lapply(
climate, `[[`, 2), # this one takes my list of climate data and selects the T column for all provinces
quantile, probs = c(0.95), na.rm = TRUE) # this one takes the previous list and finds 95th percentile value
thresh95
mas quando tento encontrar as temperaturas que estão acima do limite, algo dá errado.
tmax95 <- lapply(lapply(climate, `[[`, 2), # this one takes my list of climate data and selects the T column for all provinces
function(x) x[which(x>thresh95)])# this one takes my list of climate data and selects the temps that are greater than the threshold
tmax95
Existe uma maneira de escrever algo que retorne um subconjunto do quadro de dados de cada província onde a condição é que a temperatura seja maior que o limite? Obrigado!