====== Maria ====== {{:bie5782:01_curso2009:alunos:trabalho_final:eu.jpg?300|}} Doutoranda em Ecologia/USP. ===== Proposta ===== ==== Plano A ==== Os dados originais sobre redes de interação entre plantas e visitantes florais são compostos por linhas que representam plantas e colunas com as espécies visitantes, expressos muitas vezes em termos de freqüência de interação. No entanto, alguns índices descritores das redes de interação tais como a conectância e o tamanho da rede, são calculados utilizando a matriz de adjacência binária. Proponho construir uma função que transforme dados originais de redes de interações em uma matriz de adjacência contendo apenas presença e ausência de espécie de visitante por espécie de planta. Ela deverá retornar a matriz binária, o tamanho da rede e a conectância da mesma. ==== Comentários ==== Ale: acho que a proposta está legal! Manda ver! ==== Plano B ==== Em alguns casos, pode ser interessante analisar uma determinada rede de interações de forma mais restritiva (por exemplo, apenas interações que ocorrem em um determinado local ou época do ano). Construir uma função que concatene parte dos dados da matriz original com base nos níveis de uma determinada variável. Ela deverá retornar as matrizes de freqüência para cada fator dessa nova variável (local ou época do ano) como objetos diferentes. ===== Página de Ajuda ===== inter.net package:nenhum R Documentation Matriz binária de interação entre 2 grupos de espécies. Description: Produz uma lista contendo a matriz de adjacência binária e algumas propriedades da rede. Usage: inter.net(dados) Arguments: dados: matriz bruta contendo espécies do nível inferior nas linhas e do nível superior nas colunas. A primeira coluna deve ser composta pelas espécies de plantas, no caso de uma rede entre plantas e visitantes florais. Details: Extrai de uma matriz de dados bruta uma matriz de adjacência compactada, que contém apenas dados binários indicando a ocorrência de interação entre um determinado par de espécies. Ela foi projetada para análise básica de redes de interação entre plantas e visitantes forais, onde as plantas são o nível inferior, representadas por linhas, e os visitantes florais são o nível superior, representados por colunas. Todos esses valores serão transformados em presença e ausência para a produção da matriz final e cálculo de algumas propriedades da rede. Value: Os resultados retornados são: MTX: Matriz de adjacência binária NV: Número de visitants florais NP: Número de plantas IP: Número de interações potenciais IO: Número de interações observadas C: Conectância da matriz (IP/IO) Warning: A matriz de entrada pode conter dados faltantes e dados de freqüência de visitas, que serão substituídos por zero. Author(s): Maria Rodrigues Vianna, IB/USP, São Paulo-SP mia_vianna@yahoo.com.br References: Bascompte, J., P. Jordano, C. J. Melián, and J. M. Olesen. 2003. The nested assembly of plant-animal mutualistic networks. PNAS. 100:9383-9387. See Also: Para ver outros índices utilizados em análises de redes de interação, ver o pacote ‘bipartite’. Examples: ## Criação de uma matriz de interação aleatória ---- a <- as.vector(c(rep(paste('P',1:10),5))) b <- c('Plantas', paste('V',1:30)) c <- c(rep(NA, 200), abs(round(rnorm(300, 0,.4))), rep(NA, 300), abs(round(rnorm(500, 0,.2))), rep(NA,200)) data <- matrix(NA, nrow=50, ncol=31) colnames(data) <- b data[,1] <- a dados[,2:31] <- c inter.net(dados) ===== Código da Função ===== inter.net <- function(dados) { x <- dados x <- as.data.frame (x) index <- x[,1] x[,1] <- as.factor(x[,1]) spp <- levels(x[,1]) x[,1] <- NULL x <- as.matrix(x) dim <- dim(x) na <- sum(is.na(x)) if (sum(is.na(x))>0) { cat ('\n\t Haviam dados faltantes, que foram substituidos por 0 \t') for (k in 1:dim[2]) { x[which(is.na(x[,k])==T),k] <- 0 } } result1 <- matrix(nrow=length(spp), ncol=dim[2], c(NA)) rownames(result1) <- spp colnames(result1) <- colnames(x) for(i in 1:dim[2]) { freq <- tapply(X=x[, i], INDEX=index,FUN=sum) result1[,i] <- freq } result1[result1>0] <- 1 result1 <- as.data.frame(result1) result2 <- result1[,!(colSums(result1) == 0)] res <- result2[!(rowSums(result2) == 0),] dim2 <- dim(res) MTX <- as.data.frame(res) NP <- dim2[1] NV <- dim2[2] IP <- dim2[1]*dim2[2] IO <- sum(res) C <- IO/IP resulta <- c(round(NP,2), round(NV,2), round(IP,2), round(IO,2), round(C,2)) names(resulta) <- c('NP', 'NV', 'IP', 'IO', 'C') return(list(MTX, resulta)) } ===== Arquivo da Função ===== {{:bie5782:01_curso2009:alunos:trabalho_final:maria_funcao_final.r|inter.net}}