Você está certo Benilton. O seu método não produz NAs. Mas como disse, sou biólogo e novo em programação... eu preciso expandir esse código incluindo outras análises, e eu não consegui fazer isso usando regular expressions, pois eu entendo pouco sobre elas, e então tentei por outro caminho, não tão elegante quanto o seu. Mas eu tentarei focar em aprender isso agora. Muito obrigado pela pronta resposta!
Vitor On Mar 23, 2012, at 3:23 PM, Benilton Carvalho wrote: > Vitor, > > eu nao consigo entender o q vc quer fazer/dizer... o codigo que eu > havia recomendado nao produz NA, ate' onde eu me lembro. > > ou sera' q vc esta' se referindo a casos onde toda a coluna e' faltante? > > x = rep(NA, 5) > y = sample(letters[1:3], 5, rep=T) > table(x, y) > > eh isso? > > b > > 2012/3/23 Vitor Aguiar <[email protected]>: >> 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 >> >> [email protected] >> >> 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. >> >> >> >> >> >> >> _______________________________________________ >> R-br mailing list >> [email protected] >> 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. > _______________________________________________ > R-br mailing list > [email protected] > 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. _______________________________________________ R-br mailing list [email protected] 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.
