Articles of plyr

maneira mais rápida de criar variável que agrega uma coluna por id

Existe uma maneira mais rápida de fazer isso? Eu acho que isso é desnecessário lento e que uma tarefa como esta pode ser realizada com funções básicas. df <- ddply(df, "id", function(x) cbind(x, perc.total = sum(x$cand.perc))) Sou novo na R. Eu olhei by() , aggregate() e tapply() , mas não consegui que funcionassem de todo […]

R: Dividir lista não balanceada na coluna data.frame

Suponha que você tenha um quadro de dados com a seguinte estrutura: df <- data.frame(a=c(1,2,3,4), b=c("job1;job2", "job1a", "job4;job5;job6", "job9;job10;job11")) onde a coluna b é uma lista delimitada por ponto-e-vírgula (desequilibrada por linha). O data.frame ideal seria: id,job,jobNum 1,job1,1 1,job2,2 … 3,job6,3 4,job9,1 4,job10,2 4,job11,3 Eu tenho uma solução parcial que leva quase 2 horas (170 […]

Erro de object não encontrado com ddply dentro de uma function

Isso realmente desafiou minha capacidade de depurar o código R. Eu quero usar ddply() para aplicar as mesmas funções para colunas diferentes que são nomeadas sequencialmente; por exemplo. a, b, c. Para fazer isso, pretendo passar repetidamente o nome da coluna como uma string e usar o eval(parse(text=ColName)) para permitir que a function faça referência […]

Crie colunas a partir de fatores e conte

Um problema aparentemente fácil está me mantendo muito ocupado. Eu tenho um quadro de dados: > df1 Name Score 1 Ben 1 2 Ben 2 3 John 1 4 John 2 5 John 3 Eu gostaria de criar um resumo da tabela assim: > df2 Name Score_1 Score_2 Score_3 1 Ben 1 1 0 2 […]

Juntando valores agregados de volta ao quadro de dados original

Um dos padrões de design que uso repetidamente é executar um “agrupar por” ou “dividir, aplicar, combinar (SAC)” em um quadro de dados e, em seguida, unir os dados agregados aos dados originais. Isso é útil, por exemplo, ao calcular o desvio de cada município da média do estado em um quadro de dados com […]

Por que o plyr é tão lento?

Eu acho que estou usando plyr incorretamente. Alguém poderia me dizer se é um código plyr “eficiente”? require(plyr) plyr <- function(dd) ddply(dd, .(price), summarise, ss=sum(volume)) Um pequeno contexto: tenho alguns problemas de agregação grandes e notei que cada um demorava algum tempo. Na tentativa de resolver os problemas, fiquei interessado no desempenho de vários procedimentos […]

R: acelerar as operações de “grupo por”

Eu tenho uma simulação que tem um enorme agregado e combina passo a passo no meio. Eu prototipou esse processo usando a function ddly () do plyr, que funciona muito bem para uma grande porcentagem das minhas necessidades. Mas eu preciso que essa etapa de agregação seja mais rápida, já que tenho que executar simulações […]

Como replace NA pela média por subconjunto em R (impute with plyr?)

Eu tenho um dataframe com os comprimentos e larguras de vários artrópodes das entranhas de salamandras. Como algumas tripas tinham milhares de itens de presas, eu medi apenas um subconjunto de cada tipo de presa. Agora quero replace cada indivíduo não medido pelo comprimento e largura médios dessa presa. Eu quero manter o dataframe e […]

O que significa o ponto em R – preferência pessoal, convenção de nomenclatura ou mais?

Eu não estou (provavelmente) referindo-me às “todas as outras variables” significando como var1~. Aqui. Fui apontado para plyr mais uma vez e olhei em mlply e me perguntei por que os parâmetros são definidos com ponto inicial como este: function (.data, .fun = NULL, …, .expand = TRUE, .progress = “none”, .parallel = FALSE) { […]

Existe uma function R que aplica uma function a cada par de colunas?

Muitas vezes preciso aplicar uma function a cada par de colunas em um dataframe / matriz e retornar os resultados em uma matriz. Agora eu sempre escrevo um loop para fazer isso. Por exemplo, para fazer uma matriz contendo os valores p de correlações, escrevo: df <- data.frame(x=rnorm(100),y=rnorm(100),z=rnorm(100)) n <- ncol(df) foo <- matrix(0,n,n) for […]