apagar valores de um dataframe e colocar NA neles

Galera Tenho um data frame com valores, e preciso apagar esses valores e colocar NA neles.....qual a melhor forma? Ivan

sim e mantendo a estrutura do data frame , funcionou, obrigado Paulo. Em 10 de agosto de 2011 16:41, Paulo Justiniano <paulojus@leg.ufpr.br>escreveu:
todos os valores?
df[,] <- NA
On Wed, 10 Aug 2011, Luis Iván Ortiz Valencia wrote:
Galera
Tenho um data frame com valores, e preciso apagar esses valores e colocar NA neles.....qual a melhor forma?
Ivan
_______________________________________________ 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.

Olá pessoal, boa tarde. Estou usando a função CrossTable do pacote "descr" para gerar uma tabulação sobre dois fatores: marcas x regiao, tudo certo. O problema é que eu preciso que os percentuais sejam dados sobre o número de questionários enviados e não sobre o número de marcas apontadas. Explico: na minha pesquisa, havia a opção do respondente incluir mais de uma marca na resposta para um item. Neste caso, eu tenho que considerar um "voto", por assim dizer, para cada marca que ele indicou mas preciso considerar apenas um questionário quando fizer a tabela cruzada, ou seja, O universo tem que ser o número de questionarios e não o número de votos. Se algum puder me indicar alguma função ou algum caminho para isso eu agradeço. Segue um fragmento dos dados para ajudar. Valeu. Clayton que marca regiao 1 OLIVO NE 1 ABALUX NE 2 LUMIBRAS CO 2 RCG CO 2 SKYLUX CO 3 DAUTEC GSP 3 ECP GSP 3 LUMIBRAS GSP 3 DECADA GSP 5 RESMINI RS 6 LUMICENTER ISP 6 INTRAL ISP 6 ITAIM ISP 7 ABALUX CO 7 MAEL CO 8 TASCHIBRA SC 9 ABALUX ISP 9 BLAN ISP 11 ABALUX SC 12 LUMIMUNDI PR 12 ABALUX PR 12 ECP PR 13 ECP PR 13 ABALUX PR 14 INDELPA ISP 14 INTRAL ISP 15 ART-LUZ ISP 15 CAROLINO ISP 15 ITAIM ISP 15 LUMISOFT ISP 16 RCG PR 16 ABALUX PR 17 SKYLUX MG 17 LUMILUZ MG 17 BLUMENAU MG 17 LUMIBRAS MG 18 ITAIM GSP 19 ABALUX SC 19 TASCHIBRA SC 20 LUMA RJ 20 ABALUX RJ 20 BARSOTTI RJ 20 ITAIM RJ

2011/8/10 Clayton Santos Delfino <csd@arandanet.com.br>:
Estou usando a função CrossTable do pacote "descr" para gerar uma tabulação sobre dois fatores: marcas x regiao, tudo certo.
O problema é que eu preciso que os percentuais sejam dados sobre o número de questionários enviados e não sobre o número de marcas apontadas.
Explico: na minha pesquisa, havia a opção do respondente incluir mais de uma marca na resposta para um item. Neste caso, eu tenho que considerar um "voto", por assim dizer, para cada marca que ele indicou mas preciso considerar apenas um questionário quando fizer a tabela cruzada, ou seja, O universo tem que ser o número de questionarios e não o número de votos.
Se algum puder me indicar alguma função ou algum caminho para isso eu agradeço.
Segue um fragmento dos dados para ajudar.
Supondo que o data.frame se chama "b", veja se o código abaixo faz o que você quer: peso <- 1 / table(b$que) peso <- data.frame(que = as.numeric(names(peso)), peso = as.numeric(peso)) b2 <- merge(b, peso) library(descr) crosstab(b2$marca, b2$regiao, b2$peso) -- Jakson

Olá Jakson, bom dia. Entendi o código que você sugeriu e fiz o teste mas não deu certo porque a quantidade de votos para as marcas diminuiram. Exemplo: Suponha que exista uma marca A que tenha um total de 100 votos dos quais 30 foram citados com outras marcas. Quando faço o teste tenho um retorno de apenas 70 votos na coluna total. Se puder lhe ajudar a entender, veja abaixo como é o resultado que preciso chegar, neste caso foi gerado pelo spss pelo que me foi informado. Infelizmente não sou estatístico e acabei recebendo esta tarefa, por isso peço-lhe ajuda. +-------------------------+------+----------------------------------------------------------------------------+ | |TOTAL | REGIAO | |Celula: Frequencia | +------+------+------+------+------+------+------+------+------+------+------+ | % vertical | | CO | ES | GSP | ISP | MG | N | NE | PR | RJ | RS | SC | +-------------------------+------+------+------+------+------+------+------+------+------+------+------+------+ |BASE.....................| 473 | 35 | 12 | 65 | 97 | 53 | 16 | 25 | 40 | 14 | 74 | 42 | | .......................|100,0%| 7,4%| 2,5%| 13,7%| 20,5%| 11,2%| 3,4%| 5,3%| 8,5%| 3,0%| 15,6%| 8,9%| | | | | | | | | | | | | | | | ABALUX..................| 108 | 7 | 8 | 11 | 24 | 1 | 2 | 5 | 23 | 4 | 11 | 12 | | .......................| 22,8%| 20,0%| 66,7%| 16,9%| 24,7%| 1,9%| 12,5%| 20,0%| 57,5%| 28,6%| 14,9%| 28,6%| | INTRAL..................| 68 | 3 | | 5 | 11 | 3 | 2 | 10 | 1 | 2 | 26 | 5 | | .......................| 14,4%| 8,6%| | 7,7%| 11,3%| 5,7%| 12,5%| 40,0%| 2,5%| 14,3%| 35,1%| 11,9%| Clayton _______________________________________________ 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.

Clayron Sinceramente? Até agora não entendi direito o que você pretende fazer Teria como explicar melhor? lmassis <at> yahoo <dot> com <dot> br assis.leonard <at> gmail <dot> com 2011/8/11 Clayton Santos Delfino <csd@arandanet.com.br>
Olá Jakson, bom dia.
Entendi o código que você sugeriu e fiz o teste mas não deu certo porque a quantidade de votos para as marcas diminuiram.
Exemplo:
Suponha que exista uma marca A que tenha um total de 100 votos dos quais 30 foram citados com outras marcas.
Quando faço o teste tenho um retorno de apenas 70 votos na coluna total.
Se puder lhe ajudar a entender, veja abaixo como é o resultado que preciso chegar, neste caso foi gerado pelo spss pelo que me foi informado.
Infelizmente não sou estatístico e acabei recebendo esta tarefa, por isso peço-lhe ajuda.
+-------------------------+------+----------------------------------------------------------------------------+ | |TOTAL | REGIAO | |Celula: Frequencia | +------+------+------+------+------+------+------+------+------+------+------+ | % vertical | | CO | ES | GSP | ISP | MG | N | NE | PR | RJ | RS | SC |
+-------------------------+------+------+------+------+------+------+------+------+------+------+------+------+ |BASE.....................| 473 | 35 | 12 | 65 | 97 | 53 | 16 | 25 | 40 | 14 | 74 | 42 | | .......................|100,0%| 7,4%| 2,5%| 13,7%| 20,5%| 11,2%| 3,4%| 5,3%| 8,5%| 3,0%| 15,6%| 8,9%| | | | | | | | | | | | | | | | ABALUX..................| 108 | 7 | 8 | 11 | 24 | 1 | 2 | 5 | 23 | 4 | 11 | 12 | | .......................| 22,8%| 20,0%| 66,7%| 16,9%| 24,7%| 1,9%| 12,5%| 20,0%| 57,5%| 28,6%| 14,9%| 28,6%| | INTRAL..................| 68 | 3 | | 5 | 11 | 3 | 2 | 10 | 1 | 2 | 26 | 5 | | .......................| 14,4%| 8,6%| | 7,7%| 11,3%| 5,7%| 12,5%| 40,0%| 2,5%| 14,3%| 35,1%| 11,9%|
Clayton
_______________________________________________ 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. _______________________________________________ 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.

Leonard, vou lhe dar um exemplo que talvez possa lhe ajudar. Em um banco de dados de uma pesquisa eleitoral, quando são duas vagas para senador, o entrevistado pode indicar dois nomes. Sen1, Sen2. Faço o seguinte: sena1<-data.frame(sen=bd$Sen1) sena2<-data.frame(sen=bd$Sen2) senad<-rbind(sena1,sena2) Você terá um banco de dados com o número de linhas igual a soma de sena1 e sena2. Se sena1 são 300 linhas e sena2 são 200 linhas, o seu banco senad terá 500 linhas. Portanto, o ideal é trabalhar somente com os percentuais. p.s. Você usar mais de uma variável. Para ver o percentual de cada senador em relação a todas as citações, basta: 100*prop.table(table(senad$sen)) Edson Lira Estatístico Manaus-Amazonas ________________________________ De: Leonard Assis <assis.leonard@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quinta-feira, 11 de Agosto de 2011 10:30 Assunto: Re: [R-br] RES: Usar peso para tabela cruzada Clayron Sinceramente? Até agora não entendi direito o que você pretende fazer Teria como explicar melhor? lmassis <at> yahoo <dot> com <dot> br assis.leonard <at> gmail <dot> com 2011/8/11 Clayton Santos Delfino <csd@arandanet.com.br> Olá Jakson, bom dia.
Entendi o código que você sugeriu e fiz o teste mas não deu certo porque a quantidade de votos para as marcas diminuiram.
Exemplo:
Suponha que exista uma marca A que tenha um total de 100 votos dos quais 30 foram citados com outras marcas.
Quando faço o teste tenho um retorno de apenas 70 votos na coluna total.
Se puder lhe ajudar a entender, veja abaixo como é o resultado que preciso chegar, neste caso foi gerado pelo spss pelo que me foi informado.
Infelizmente não sou estatístico e acabei recebendo esta tarefa, por isso peço-lhe ajuda.
+-------------------------+------+----------------------------------------------------------------------------+ | |TOTAL | REGIAO | |Celula: Frequencia | +------+------+------+------+------+------+------+------+------+------+------+ | % vertical | | CO | ES | GSP | ISP | MG | N | NE | PR | RJ | RS | SC | +-------------------------+------+------+------+------+------+------+------+------+------+------+------+------+ |BASE.....................| 473 | 35 | 12 | 65 | 97 | 53 | 16 | 25 | 40 | 14 | 74 | 42 | | .......................|100,0%| 7,4%| 2,5%| 13,7%| 20,5%| 11,2%| 3,4%| 5,3%| 8,5%| 3,0%| 15,6%| 8,9%| | | | | | | | | | | | | | | | ABALUX..................| 108 | 7 | 8 | 11 | 24 | 1 | 2 | 5 | 23 | 4 | 11 | 12 | | .......................| 22,8%| 20,0%| 66,7%| 16,9%| 24,7%| 1,9%| 12,5%| 20,0%| 57,5%| 28,6%| 14,9%| 28,6%| | INTRAL..................| 68 | 3 | | 5 | 11 | 3 | 2 | 10 | 1 | 2 | 26 | 5 | | .......................| 14,4%| 8,6%| | 7,7%| 11,3%| 5,7%| 12,5%| 40,0%| 2,5%| 14,3%| 35,1%| 11,9%|
Clayton
_______________________________________________ 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. _______________________________________________ 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.
_______________________________________________ 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.

Bom pessoal, eu consegui chegar bem próximo do desejado. Agora preciso apenas agrupar os dados consirando-se as variáveis marcadescricao e regiao. descricaoregiao marcadestricao frequencia peso2 percentual 307 ISP ABALUX 35 86 40.70 715 PR ABALUX 30 41 73.17 919 RS ABALUX 24 66 36.36 205 GSP ABALUX 20 70 28.57 1021 SC ABALUX 18 47 38.30 Considerando-se os dados acima queria uma tabela algo assim: ISP PR RS GSP SC 35 30 24 20 18 ABALUX 40,70 73.17 36.36 28.57 38.30 Agradeço a ajuda de todos. Clayton

Édson, essa parte eu entendi, o que eu não entendi era exatamente o que ele queria, pois perguntas que admitem mais de uma resposta podem ser codificadas inúmeras maneiras. Exemplificando com sua idéia de Senador: Imagine três candidatos (João, Antonio e Francisco). Eu ano passado enviei a campo as perguntas com instrução de se perguntar duas vezes, tendo 2 respostas com a mesma codificação Aí, neste caso, sua sugestão funciona perfeitamente, fazendo até sentido. Agora imagine que ao invés de codificar desta forma, se optou por codificar 1 coluna para cada candidato, tendo colunas para João, Antonio, Francisco e colunas adicionais para erros frequentes, como candidato inválido, etc. Neste caso, teríamos um problema sério e bão trivial, pois não bastaria agrupar as colunas, pois teríamos casos em que não houve resposta, casos em que houve apenas 1 resposta e casos com 2 respostas, além das respostas inválidas. Se eu simplesmente agrupar as colunas, seria incorreto, mesmo mudando a codificação, precisaríamos processar isso de uma maneira mais inteligente, tratando todas as situações possíveis. (Por exemplo: o trio 0,0,0 adiciona 1 linha apenas, etc) Essa é minha dúvida: como ele codificou, pois se ele codificou deste segundo jeito, a solução é um pouco mais complicada e deve ser pensada com cuidado, para que o resultado não gere proporções incorretamente lmassis <at> yahoo <dot> com <dot> br assis.leonard <at> gmail <dot> com 2011/8/11 Edson Lira <edinhoestat@yahoo.com.br>
Leonard, vou lhe dar um exemplo que talvez possa lhe ajudar.
Em um banco de dados de uma pesquisa eleitoral, quando são duas vagas para senador, o entrevistado pode indicar dois nomes. Sen1, Sen2.
Faço o seguinte:
sena1<-data.frame(sen=bd$Sen1)
sena2<-data.frame(sen=bd$Sen2)
senad<-rbind(sena1,sena2)
Você terá um banco de dados com o número de linhas igual a soma de sena1 e sena2. Se sena1 são 300 linhas e sena2 são 200 linhas, o seu banco senad terá 500 linhas. Portanto, o ideal é trabalhar somente com os percentuais.
p.s. Você usar mais de uma variável.
Para ver o percentual de cada senador em relação a todas as citações, basta:
100*prop.table(table(senad$sen))
Edson Lira Estatístico Manaus-Amazonas ------------------------------ *De:* Leonard Assis <assis.leonard@gmail.com> *Para:* r-br@listas.c3sl.ufpr.br *Enviadas:* Quinta-feira, 11 de Agosto de 2011 10:30 *Assunto:* Re: [R-br] RES: Usar peso para tabela cruzada
Clayron
Sinceramente?
Até agora não entendi direito o que você pretende fazer
Teria como explicar melhor?
lmassis <at> yahoo <dot> com <dot> br assis.leonard <at> gmail <dot> com
2011/8/11 Clayton Santos Delfino <csd@arandanet.com.br>
Olá Jakson, bom dia.
Entendi o código que você sugeriu e fiz o teste mas não deu certo porque a quantidade de votos para as marcas diminuiram.
Exemplo:
Suponha que exista uma marca A que tenha um total de 100 votos dos quais 30 foram citados com outras marcas.
Quando faço o teste tenho um retorno de apenas 70 votos na coluna total.
Se puder lhe ajudar a entender, veja abaixo como é o resultado que preciso chegar, neste caso foi gerado pelo spss pelo que me foi informado.
Infelizmente não sou estatístico e acabei recebendo esta tarefa, por isso peço-lhe ajuda.
+-------------------------+------+----------------------------------------------------------------------------+ | |TOTAL | REGIAO | |Celula: Frequencia | +------+------+------+------+------+------+------+------+------+------+------+ | % vertical | | CO | ES | GSP | ISP | MG | N | NE | PR | RJ | RS | SC |
+-------------------------+------+------+------+------+------+------+------+------+------+------+------+------+ |BASE.....................| 473 | 35 | 12 | 65 | 97 | 53 | 16 | 25 | 40 | 14 | 74 | 42 | | .......................|100,0%| 7,4%| 2,5%| 13,7%| 20,5%| 11,2%| 3,4%| 5,3%| 8,5%| 3,0%| 15,6%| 8,9%| | | | | | | | | | | | | | | | ABALUX..................| 108 | 7 | 8 | 11 | 24 | 1 | 2 | 5 | 23 | 4 | 11 | 12 | | .......................| 22,8%| 20,0%| 66,7%| 16,9%| 24,7%| 1,9%| 12,5%| 20,0%| 57,5%| 28,6%| 14,9%| 28,6%| | INTRAL..................| 68 | 3 | | 5 | 11 | 3 | 2 | 10 | 1 | 2 | 26 | 5 | | .......................| 14,4%| 8,6%| | 7,7%| 11,3%| 5,7%| 12,5%| 40,0%| 2,5%| 14,3%| 35,1%| 11,9%|
Clayton
_______________________________________________ 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. _______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.

Olá pessoal, bom dia. Estou precisando agora juntar dois data-frames combinando as linhas baseadas em uma coluna. Os data frames tem exatamente o mesmo número de linhas e colunas, o que mudam são os valores conforme mostrado abaixo Novamente, agradeço a ajuda de todos. Clayton Data frame 1 ID CO ES GSP ISP MG N NE PR RJ RS SC A 8 8 20 35 11 3 7 30 6 24 18 Data frame 2 ID CO ES GSP ISP MG N NE PR RJ RS SC A 22.86 72.73 28.57 40.70 21.15 17.65 33.33 73.17 22.22 36.36 38.30 Data frame final ID CO ES GSP ISP MG N NE PR RJ RS SC A 8 8 20 35 11 3 7 30 6 24 18 22.86 72.73 28.57 40.70 21.15 17.65 33.33 73.17 22.22 36.36 38.30

?rbind 2011/8/12 Clayton Santos Delfino <csd@arandanet.com.br>
** Olá pessoal, bom dia.
Estou precisando agora juntar dois data-frames combinando as linhas baseadas em uma coluna.
Os data frames tem exatamente o mesmo número de linhas e colunas, o que mudam são os valores conforme mostrado abaixo
Novamente, agradeço a ajuda de todos.
Clayton
Data frame 1
ID
CO
ES
GSP
ISP
MG
N
NE
PR
RJ
RS
SC
A
8
8
20
35
11
3
7
30
6
24
18
Data frame 2
ID
CO
ES
GSP
ISP
MG
N
NE
PR
RJ
RS
SC
A
22.86
72.73
28.57
40.70
21.15
17.65
33.33
73.17
22.22
36.36
38.30
Data frame final
ID
CO
ES
GSP
ISP
MG
N
NE
PR
RJ
RS
SC
A
8
8
20
35
11
3
7
30
6
24
18
22.86
72.73
28.57
40.70
21.15
17.65
33.33
73.17
22.22
36.36
38.30
_______________________________________________ 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.

E, *por favor*, use o guia de postagem... De-nos sempre um exemplo reproduzivel e, no caso desta mensagem em particular, evite enviar emails em HTML, pois partes do seu email podem ser perdidas... b

Olá Benilton, Eu sinceramente peço-lhe desculpas e a todos os demais participantes da lista. Tenho procurado me enquadrar nos preceitos da lista, sobretudo nas mensagens que posto, mas minha deficiência no R (sou bem iniciante mesmo, acredite) me leva a tentar passar minhas dificuldades da forma mais lúdica possível e entendo que isto contrarie as normas pré-estabelicidas. Agradeço pela compreensão e espero melhorar o nível das mensagens. Clayton -----Mensagem original----- De: r-br-bounces@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] Em nome de Benilton Carvalho Enviada em: sexta-feira, 12 de agosto de 2011 11:47 Para: r-br@listas.c3sl.ufpr.br Assunto: Re: [R-br] Mesclar data frames E, *por favor*, use o guia de postagem... De-nos sempre um exemplo reproduzivel e, no caso desta mensagem em particular, evite enviar emails em HTML, pois partes do seu email podem ser perdidas... 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.

Todos entendemos isso, nao se preocupe por demais. Lembre-se apenas de umas dicas simples: 1) HTML - mau (ie, nao mande textos coloridinhos, ou tabelas formatadas) 2) Anexos - mau (use algum servico de hospedagem - dicas no guia de postagem) 3) Ao escrever um exemplo (pequeno) no email, abra uma sessao nova do R, copie e cole o seu exemplo... se tudo funcionar como vc descreve (note q 'funcionar' tbm refere-se a vc obter o problema q vc esta' descrevendo), entao esse eh o exemplo reproduzivel que a gente (eu, na maioria das vezes =/ ) pede. Aqui um exemplinho baseado num email q acabou de rolar: Problema: a soma de vetores q contem NA retorna NA. Exemplo reproduzivel: x = c(1, 2, NA) sum(x) (note q se vc copiar e colar as duas linhas acima no seu R, vc vai ver o problema descrito) Abraco e bem-vindo, b

Clayton, de-nos um exemplo reproduzivel. Vide: http://gist.github.com/1088208 E a secao "Como escrever um exemplo reproduzivel" no Guia de Postagem. b
participantes (8)
-
Benilton Carvalho
-
Clayton Santos Delfino
-
Edson Lira
-
Gustavo Carvalho
-
Jakson Alves de Aquino
-
Leonard Assis
-
Luis Iván Ortiz Valencia
-
Paulo Justiniano