
Gostaria de pedir ajuda novamente sobre o mesmo problema. Talvez Benilton ou outro usuário de loops possam ajudar. Acho que a resposta é muito simples. Desde já agradeço. # Usando o arquivo abaixo com algumas células em branco (pois o valor não existe). Então o loop abaixo não funciona. Eu gostaria que o loop corresse pelo arquivo e, quando encontrasse um valor faltando, ele ignorasse e pulasse para o próximo valor, sem produzir um NA no meu output. Talvez usar if statement... file: http://www.datafilehost.com/download-9a400f40.html pop = read.csv("file.csv", row.names = 1) counter = 1 while (counter < length(names(pop))) { N = length(c(pop[ ,counter])) Names = levels(factor(c(pop[ ,counter], pop[ ,counter + 1]))) ObsGen = matrix(0, nrow = length(Names), ncol = length(Names), dimnames = list(Names, Names)) for(i in 1:N) { ObsGen[paste(pop[i, counter]), paste(pop[i, counter + 1])] = ObsGen[paste(pop[i, counter]), paste(pop[i, counter + 1])] + 1 } print(ObsGen) counter = counter + 2 } On Mar 12, 2012, at 11:55 AM, Vitor Aguiar wrote:
Muito boa alternativa. Muito obrigado Benilton!
On Mar 12, 2012, at 3:51 AM, Benilton Carvalho wrote:
Desde que os nomes dos grupos nao sejam ambiguos:
grupos <- unique(gsub("(.*)\\.\\d{1}$", "\\1", names(Pop))) tabelaPorGrupo <- function(grp, dat){ cols <- grep(grp, names(dat)) Nomes <- levels(factor(c(dat[,cols[1]], dat[,cols[2]]))) table(factor(Pop[,cols[1]], levels=Nomes), factor(Pop[,cols[2]], levels=Nomes)) } tabelas <- lapply(grupos, tabelaPorGrupo, Pop) names(tabelas) <- grupos tabelas
b _______________________________________________ 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.