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.
