Mais uma vez muito obrigado. Vitor
On Mar 26, 2012, at 3:33 AM, Benilton Carvalho wrote: > Se fosse apenas um valor escalar armazenado numa variavel chamada 'x': > > ## para fazer algo com os NAs > if (is.na(x)) > faca isso > > ## para fazer algo com qq valor q nao seja NA > if (!is.na(x)) > faca aquilo > > b > > 2012/3/26 Vitor Aguiar <[email protected]>: >> Bom, eu gostaria então de fazer outra pergunta simples. >> O arquivo da última mensagem >> ("http://www.datafilehost.com/download-9a400f40.html") tem alguns valores em >> branco (NA). Eu gostaria de analisar esses dados com um loop e, dentro desse >> loop, incluir a condição "se o valor for NA, desconsiderar e analisar o >> próximo valor". >> Faço isso com if( )? Alguém pode ajudar como escrever? >> >> PS: Acho q não precisa nem abrir o arquivo pra responder, é só uma pergunta >> teórica. >> >> Muito Obrigado, >> Vitor >> >> >> >> Nesses dados: >> On Mar 23, 2012, at 4:57 PM, Vitor Aguiar wrote: >> >>> 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. > _______________________________________________ > 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.
