[R-br] problema com for loop

Benilton Carvalho beniltoncarvalho em gmail.com
Sexta Março 23 19:23:44 BRT 2012


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 <vitor.aguiar em me.com>:
> 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 em 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.
>
>
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em 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.


Mais detalhes sobre a lista de discussão R-br