Contar casos em cada variável e em todas as variáveis

Pessoal, Dado o banco: *ATO_1* *ATO_2* *ATO_3* ART 121 ART 155 ART 180 ART 33 ART 28 ART 10 ART 121 ART 15 ART 155 ART 155 ART 33 ART 121 ART 28 ART 33 ART 33 ART 121 ART 121 ART 121 ART 15 ART 121 ART 180 a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado: *ATO_1* ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1 e assim com *ATO_2 e **ATO_3.* b) preciso saber o total de cada elemento em todos as colunas, assim: ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1 Muito obrigado.

table(df$ATO_1) daniel
On May 26, 2016, at 8:28 PM, Amiko Bh <amikobh@gmail.com> wrote:
Pessoal,
Dado o banco:
ATO_1 ATO_2 ATO_3 ART 121 ART 155 ART 180 ART 33 ART 28 ART 10 ART 121 ART 15 ART 155 ART 155 ART 33 ART 121 ART 28 ART 33 ART 33 ART 121 ART 121 ART 121 ART 15 ART 121 ART 180
a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado:
ATO_1
ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1
e assim com ATO_2 e ATO_3.
b) preciso saber o total de cada elemento em todos as colunas, assim:
ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1
Muito obrigado.
_______________________________________________ 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.

Caro Segue sugestões library(reshape2) ATO$id = 1:7 ##acrescenta uma coluna de controle para o melt ##remodelando sua tabela ATOMelt = melt(ATO, id="id", variable.name="ATO_n", value.name="ART") ##usando dplyr library(dplyr) ATOMelt %>% count(ART) ##usando o poderoso data.table library(data.table) setDT(ATOMelt) ##converte para data.table ##contando ATOMelt[, .N, by = .(ART)] saudações Em 26/05/2016 16:28, Amiko Bh escreveu:
Pessoal,
Dado o banco:
*ATO_1*
*ATO_2*
*ATO_3*
ART 121
ART 155
ART 180
ART 33
ART 28
ART 10
ART 121
ART 15
ART 155
ART 155
ART 33
ART 121
ART 28
ART 33
ART 33
ART 121
ART 121
ART 121
ART 15
ART 121
ART 180
a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado:
*ATO_1*
ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1
e assim com *ATO_2 e **ATO_3.*
b) preciso saber o total de cada elemento em todos as colunas, assim:
ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1
Muito obrigado.
_______________________________________________ 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.

Outra ideia... df <- data.frame( ATO_1=c("ART 121", "ART 33", "ART 121", "ART 155", "ART 28", "ART 121", "ART 15"), ATO_2=c("ART 155", "ART 28", "ART 15", "ART 33", "ART 33", "ART 121", "ART 121"), ATO_3=c("ART 180", "ART 10", "ART 155", "ART 121", "ART 33", "ART 121","ART 180")) tab <- sapply(df, table); tab addmargins(tab) # ATO_1 ATO_2 ATO_3 Sum # ART 121 3 2 1 6 # ART 15 1 1 2 4 # ART 155 1 1 1 3 # ART 28 1 1 2 4 # ART 33 1 2 1 4 # Sum 7 7 7 21 ================================================ Éder Comunello Agronomist (UEM), MSc in Environ. Sciences (UEM) DSc in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil |<O>| ================================================ GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00 Em 26 de maio de 2016 17:31, salah <salah3.1416@gmail.com> escreveu:
Caro
Segue sugestões
library(reshape2) ATO$id = 1:7 ##acrescenta uma coluna de controle para o melt ##remodelando sua tabela ATOMelt = melt(ATO, id="id", variable.name="ATO_n", value.name="ART")
##usando dplyr library(dplyr) ATOMelt %>% count(ART)
##usando o poderoso data.table library(data.table) setDT(ATOMelt) ##converte para data.table ##contando ATOMelt[, .N, by = .(ART)]
saudações
Em 26/05/2016 16:28, Amiko Bh escreveu:
Pessoal,
Dado o banco:
*ATO_1*
*ATO_2*
*ATO_3*
ART 121
ART 155
ART 180
ART 33
ART 28
ART 10
ART 121
ART 15
ART 155
ART 155
ART 33
ART 121
ART 28
ART 33
ART 33
ART 121
ART 121
ART 121
ART 15
ART 121
ART 180
a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado:
*ATO_1*
ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1
e assim com *ATO_2 e **ATO_3.*
b) preciso saber o total de cada elemento em todos as colunas, assim:
ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1
Muito obrigado.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.

Ei Eder! Segui sua ideia, porque foi a que mais entendi, mas retorna o seguinte erro:
addmargins(tab)Error in addmargins(tab) : 'A' deve ser um array ou tabela
Aproveito para agradecer a ajuda de todos . Elerson Em 27 de maio de 2016 17:33, Éder Comunello <comunello.eder@gmail.com> escreveu:
Outra ideia...
df <- data.frame( ATO_1=c("ART 121", "ART 33", "ART 121", "ART 155", "ART 28", "ART 121", "ART 15"), ATO_2=c("ART 155", "ART 28", "ART 15", "ART 33", "ART 33", "ART 121", "ART 121"), ATO_3=c("ART 180", "ART 10", "ART 155", "ART 121", "ART 33", "ART 121","ART 180"))
tab <- sapply(df, table); tab
addmargins(tab)
# ATO_1 ATO_2 ATO_3 Sum # ART 121 3 2 1 6 # ART 15 1 1 2 4 # ART 155 1 1 1 3 # ART 28 1 1 2 4 # ART 33 1 2 1 4 # Sum 7 7 7 21
================================================ Éder Comunello Agronomist (UEM), MSc in Environ. Sciences (UEM) DSc in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil |<O>| ================================================ GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00
Em 26 de maio de 2016 17:31, salah <salah3.1416@gmail.com> escreveu:
Caro
Segue sugestões
library(reshape2) ATO$id = 1:7 ##acrescenta uma coluna de controle para o melt ##remodelando sua tabela ATOMelt = melt(ATO, id="id", variable.name="ATO_n", value.name="ART")
##usando dplyr library(dplyr) ATOMelt %>% count(ART)
##usando o poderoso data.table library(data.table) setDT(ATOMelt) ##converte para data.table ##contando ATOMelt[, .N, by = .(ART)]
saudações
Em 26/05/2016 16:28, Amiko Bh escreveu:
Pessoal,
Dado o banco:
*ATO_1*
*ATO_2*
*ATO_3*
ART 121
ART 155
ART 180
ART 33
ART 28
ART 10
ART 121
ART 15
ART 155
ART 155
ART 33
ART 121
ART 28
ART 33
ART 33
ART 121
ART 121
ART 121
ART 15
ART 121
ART 180
a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado:
*ATO_1*
ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1
e assim com *ATO_2 e **ATO_3.*
b) preciso saber o total de cada elemento em todos as colunas, assim:
ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1
Muito obrigado.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.

Boa tarde! O uso do sapply() no script anterior acabou "misturando" os valores. Então usei a abordagem sugerida por "salah" pra desmontar o data.frame e aplicar o table(). ### <code r> df <- data.frame( ATO_1=c("ART 121", "ART 33", "ART 121", "ART 155", "ART 28", "ART 121", "ART 15"), ATO_2=c("ART 155", "ART 28", "ART 15", "ART 33", "ART 33", "ART 121", "ART 121"), ATO_3=c("ART 180", "ART 10", "ART 155", "ART 121", "ART 33", "ART 121","ART 180")); df lapply(df, table) df2 <- reshape::melt(cbind(id=1:7, df), id="id")[, -1]; df2 table(df2) addmargins(table(df2)) # value # variable ART 121 ART 15 ART 155 ART 28 ART 33 ART 10 ART 180 Sum # ATO_1 3 1 1 1 1 0 0 7 # ATO_2 2 1 1 1 2 0 0 7 # ATO_3 2 0 1 0 1 1 2 7 # Sum 7 2 3 2 4 1 2 21 ### </code> ================================================ Éder Comunello Agronomist (UEM), MSc in Environ. Sciences (UEM) DSc in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil |<O>| ================================================ GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00 Em 27 de maio de 2016 20:11, Amiko Bh <amikobh@gmail.com> escreveu:
Ei Eder!
Segui sua ideia, porque foi a que mais entendi, mas retorna o seguinte erro:
addmargins(tab)Error in addmargins(tab) : 'A' deve ser um array ou tabela
Aproveito para agradecer a ajuda de todos . Elerson
Em 27 de maio de 2016 17:33, Éder Comunello <comunello.eder@gmail.com> escreveu:
Outra ideia...
df <- data.frame( ATO_1=c("ART 121", "ART 33", "ART 121", "ART 155", "ART 28", "ART 121", "ART 15"), ATO_2=c("ART 155", "ART 28", "ART 15", "ART 33", "ART 33", "ART 121", "ART 121"), ATO_3=c("ART 180", "ART 10", "ART 155", "ART 121", "ART 33", "ART 121","ART 180"))
tab <- sapply(df, table); tab
addmargins(tab)
# ATO_1 ATO_2 ATO_3 Sum # ART 121 3 2 1 6 # ART 15 1 1 2 4 # ART 155 1 1 1 3 # ART 28 1 1 2 4 # ART 33 1 2 1 4 # Sum 7 7 7 21
================================================ Éder Comunello Agronomist (UEM), MSc in Environ. Sciences (UEM) DSc in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil |<O>| ================================================ GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00
Em 26 de maio de 2016 17:31, salah <salah3.1416@gmail.com> escreveu:
Caro
Segue sugestões
library(reshape2) ATO$id = 1:7 ##acrescenta uma coluna de controle para o melt ##remodelando sua tabela ATOMelt = melt(ATO, id="id", variable.name="ATO_n", value.name="ART")
##usando dplyr library(dplyr) ATOMelt %>% count(ART)
##usando o poderoso data.table library(data.table) setDT(ATOMelt) ##converte para data.table ##contando ATOMelt[, .N, by = .(ART)]
saudações
Em 26/05/2016 16:28, Amiko Bh escreveu:
Pessoal,
Dado o banco:
*ATO_1*
*ATO_2*
*ATO_3*
ART 121
ART 155
ART 180
ART 33
ART 28
ART 10
ART 121
ART 15
ART 155
ART 155
ART 33
ART 121
ART 28
ART 33
ART 33
ART 121
ART 121
ART 121
ART 15
ART 121
ART 180
a) Preciso contar cada elemento em cada variável, para que vislumbre o seguinte resultado:
*ATO_1*
ART 121 = 3 ART 33 = 1 ART 155= 1 ART 28= 1 ART 15 = 1
e assim com *ATO_2 e **ATO_3.*
b) preciso saber o total de cada elemento em todos as colunas, assim:
ART 121 = 7 ART 33 = 4 ART 155= 3 ART 28= 2 ART 15 = 2 ART 180=2 ART 10=1
Muito obrigado.
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.
participantes (4)
-
Amiko Bh
-
Daniel Tiezzi
-
salah
-
Éder Comunello