[R-br] Redistribuição das contagens de uma estrutura de dados

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[R-br] Redistribuição das contagens de uma estrutura de dados

R-br mailing list
Prezado(a)s Colegas,

Peço a vossa ajuda para encontrar solução para o seguinte problema:

Eu tenho uma estrutura de dados do tipo tabela dinâmica cujos nomes de colunas podem ser "simples" ou "combinações separadas por vírgulas" (ver código anexo).

As colunas com nomes combinados são construídas através da "concatenação" dos nomes de colunas simples. 

As colunas com nomes combinados assumem formas imprevisíveis e ocorrem aleatoriamente conforme a base de dados que lhe dá origem vai crescendo.

Eu preciso redistribuir as contagens contidas nas colunas com nomes combinados para colunas de nomes simples, de modo que se, em uma linha qualquer da minha tabela de origem, houver uma coluna AB com valor 3, na minha tabela ajustada, o valor 3 será somado uma vez ao que já havia na mesma linha correspondente das colunas A e B. O exemplo que segue anexo, imagino eu, facilita a compreensão do problema.

Muito obrigado pela atenção,
-- 
Paulo Eduardo de Mesquita
Disciplina de Infectologia - Faculdade de Medicina  Universidade do Oeste Paulista Presidente Prudente - São Paulo - Brasil
telefone: 5518 97718261

_______________________________________________
R-br mailing list
[hidden email]
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.

exemplo.R (862 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Redistribuição das contagens de uma estrutura de dados

R-br mailing list
Paulo,

Confesso que fiquei confuso.
Vou tomar a liberdade de perguntar exatamente o q vc pretende resolver? Pois vc trouxe a dúvida sobre a execução. De repente existem outras saídas para o seu problema original.
Apenas seguindo o princípio da parcimônia.
Grande abraço.


Em dom, 31 de mar de 2019 15:21, Paulo Eduardo de Mesquita por (R-br) <[hidden email]> escreveu:
Prezado(a)s Colegas,

Peço a vossa ajuda para encontrar solução para o seguinte problema:

Eu tenho uma estrutura de dados do tipo tabela dinâmica cujos nomes de colunas podem ser "simples" ou "combinações separadas por vírgulas" (ver código anexo).

As colunas com nomes combinados são construídas através da "concatenação" dos nomes de colunas simples. 

As colunas com nomes combinados assumem formas imprevisíveis e ocorrem aleatoriamente conforme a base de dados que lhe dá origem vai crescendo.

Eu preciso redistribuir as contagens contidas nas colunas com nomes combinados para colunas de nomes simples, de modo que se, em uma linha qualquer da minha tabela de origem, houver uma coluna AB com valor 3, na minha tabela ajustada, o valor 3 será somado uma vez ao que já havia na mesma linha correspondente das colunas A e B. O exemplo que segue anexo, imagino eu, facilita a compreensão do problema.

Muito obrigado pela atenção,
-- 
Paulo Eduardo de Mesquita
Disciplina de Infectologia - Faculdade de Medicina  Universidade do Oeste Paulista Presidente Prudente - São Paulo - Brasil
telefone: 5518 97718261
_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Redistribuição das contagens de uma estrutura de dados

R-br mailing list
In reply to this post by R-br mailing list
Prezado Paulo,

Veja se ajuda, continuei a partir de seu exemplo.
utilizei a função "grep()"

names(df)
A2<-apply(df[grep("[A]",names(df))],1,sum)
B2<-apply(df[grep("[B]",names(df))],1,sum)
C2<-apply(df[grep("[C]",names(df))],1,sum)
df3<-data.frame(A2,B2,C2)
df2 == df3

Att
Alan




Em dom, 31 de mar de 2019 às 15:21, Paulo Eduardo de Mesquita por (R-br) <[hidden email]> escreveu:
Prezado(a)s Colegas,

Peço a vossa ajuda para encontrar solução para o seguinte problema:

Eu tenho uma estrutura de dados do tipo tabela dinâmica cujos nomes de colunas podem ser "simples" ou "combinações separadas por vírgulas" (ver código anexo).

As colunas com nomes combinados são construídas através da "concatenação" dos nomes de colunas simples. 

As colunas com nomes combinados assumem formas imprevisíveis e ocorrem aleatoriamente conforme a base de dados que lhe dá origem vai crescendo.

Eu preciso redistribuir as contagens contidas nas colunas com nomes combinados para colunas de nomes simples, de modo que se, em uma linha qualquer da minha tabela de origem, houver uma coluna AB com valor 3, na minha tabela ajustada, o valor 3 será somado uma vez ao que já havia na mesma linha correspondente das colunas A e B. O exemplo que segue anexo, imagino eu, facilita a compreensão do problema.

Muito obrigado pela atenção,
-- 
Paulo Eduardo de Mesquita
Disciplina de Infectologia - Faculdade de Medicina  Universidade do Oeste Paulista Presidente Prudente - São Paulo - Brasil
telefone: 5518 97718261
_______________________________________________
R-br mailing list
[hidden email]
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.


--

 

Alan Rodrigo Panosso

----------------------------------------------------------------------------

Professor Assistente Doutor - Departamento de Ciências Exatas
Faculdade de Ciências Agrárias e Veterinárias - FCAV - UNESP/Jaboticabal

Via de Acesso Prof.Paulo Donato Castellane s/n 

14884-900 - Jaboticabal, SP

E_mail: [hidden email]nesp.br ou

[hidden email]
Tel.: (16) 3209-7210


_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Redistribuição das contagens de uma estrutura de dados

R-br mailing list
Apenas aditando a elegante solução proposta pelo Alan,

Este comando:

> grep(",",colnames(df), invert=T)

permitiria identificar todas as colunas com nomes "simples" no jargão do OP.

Então, um primeiro data.frame poderia ser construído : 

df2  <- df[grep(",",colnames(df), invert=T)]

Aí um laço for poderia explorar a ideia do Alan, trocando o argumento do grep dele pelos nomes no novo dataframe.

A minha proposta é deliberadamente sugestiva, porque mesmo após as várias explicações, ainda não entendi se as somas (como Alan fez) seriam feitas a cada nova vinda de dados (praticamente reconstruindo o data.frame) ou se algum mecanismo de acumulação teria que ser contemplado, com maior complexidade para a automação desse trabalho.

HTH
--
Cesar Rabak



On Mon, Apr 1, 2019 at 12:29 AM Alan Rodrigo Panosso por (R-br) <[hidden email]> wrote:
Prezado Paulo,

Veja se ajuda, continuei a partir de seu exemplo.
utilizei a função "grep()"

names(df)
A2<-apply(df[grep("[A]",names(df))],1,sum)
B2<-apply(df[grep("[B]",names(df))],1,sum)
C2<-apply(df[grep("[C]",names(df))],1,sum)
df3<-data.frame(A2,B2,C2)
df2 == df3

Att
Alan




Em dom, 31 de mar de 2019 às 15:21, Paulo Eduardo de Mesquita por (R-br) <[hidden email]> escreveu:
Prezado(a)s Colegas,

Peço a vossa ajuda para encontrar solução para o seguinte problema:

Eu tenho uma estrutura de dados do tipo tabela dinâmica cujos nomes de colunas podem ser "simples" ou "combinações separadas por vírgulas" (ver código anexo).

As colunas com nomes combinados são construídas através da "concatenação" dos nomes de colunas simples. 

As colunas com nomes combinados assumem formas imprevisíveis e ocorrem aleatoriamente conforme a base de dados que lhe dá origem vai crescendo.

Eu preciso redistribuir as contagens contidas nas colunas com nomes combinados para colunas de nomes simples, de modo que se, em uma linha qualquer da minha tabela de origem, houver uma coluna AB com valor 3, na minha tabela ajustada, o valor 3 será somado uma vez ao que já havia na mesma linha correspondente das colunas A e B. O exemplo que segue anexo, imagino eu, facilita a compreensão do problema.

Muito obrigado pela atenção,
-- 
Paulo Eduardo de Mesquita
Disciplina de Infectologia - Faculdade de Medicina  Universidade do Oeste Paulista Presidente Prudente - São Paulo - Brasil
telefone: 5518 97718261
_______________________________________________
R-br mailing list
[hidden email]
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.


--

 

Alan Rodrigo Panosso

----------------------------------------------------------------------------

Professor Assistente Doutor - Departamento de Ciências Exatas
Faculdade de Ciências Agrárias e Veterinárias - FCAV - UNESP/Jaboticabal

Via de Acesso Prof.Paulo Donato Castellane s/n 

14884-900 - Jaboticabal, SP

E_mail: [hidden email]nesp.br ou

[hidden email]
Tel.: (16) 3209-7210

_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.