Crie colunas a partir de fatores e conte [duplicado]
Esta pergunta já tem uma resposta aqui:
Como obtenho uma tabela de contingência? respostas Maneiras mais rápidas de calcular frequências e transmitir de longa a larga 4 respostasUm problema aparentemente fácil está me mantendo muito ocupad
Tenho um quadro de dados:
> df1
Name Score
1 Ben 1
2 Ben 2
3 John 1
4 John 2
5 John 3
Gostaria de criar um resumo da tabela assim:
> df2
Name Score_1 Score_2 Score_3
1 Ben 1 1 0
2 John 1 1 1
Então, o df2 deve (i) mostrar apenas "Nomes" únicos e (ii) criar colunas a partir dos fatores exclusivos em "Pontuação" e (iii) contar o número de vezes que uma pessoa recebeu a pontuaçã
Eu tentei
df2 <- ddply(df1, c("Name"), summarise
,Score_1 = sum(df1$Score == 1)
,Score_2 = sum(df1$Score == 2)
,Score_3 = sum(df1$Score == 3))
que produz:
Name Score_1 Score_2 Score_3
1 Ben 2 2 1
2 John 2 2 1
Então, minha tentativa conta incorretamentetodo ocorrências em vez de contar "por grupo"
EDITAR Conforme os comentários, também tenteireshape
(possivelmente apenas fazendo errado):
> reshape(df1, idvar = "Name", timevar = "Score", direction = "wide")
Name
1 Ben
3 John
Para começar, a coluna "Pontuação" está ausente, mas é pior do que isso, na minha pesquisa emreshape
, Não estou convencido de que vou receber umcontage de cada fator, que é o ponto inteir