[R-es] pregunta
Klaus Langohr
klaus.langohr en upc.edu
Mie Oct 28 10:00:02 CET 2015
Hola Jesús,
Usando la función by, prueba con
by(datos$Gain, datos$Diet, mean, na.rm=T)
para obviar los NA y con
by(datos$Gain, datos$Diet, function(x) sum(is.na(x)))
para contar los missings en cada categoría.
Puedes sustituir la función by también por la función tapply.
Klaus.
On 28/10/2015 9:07, Jesús Para Fernández wrote:
>
>
>
> Me gusta la respuesta uqe has dado, pero si por ejemplo, alguno de los datos tiene datos faltantes, entonces devuelve NA.
>
> He probado con:
> sapply(split(datos$uno, as.factor(datos$dos)), mean(na.rm=TRUE))
>
> pero da fallo.
>
> ¿Cómo se podría hacer para que devolviera además la media obviando los NA y que contara el numero de NA por categoria?
>
>> Date: Wed, 28 Oct 2015 00:13:45 +0100
>> From: cof en qualityexcellence.es
>> To: jbetancourt en iscmc.cmw.sld.cu
>> CC: r-help-es en r-project.org
>> Subject: Re: [R-es] pregunta
>>
>> Otras variantes con y sin paquetes adicionales...
>>
>>> sapply(split(datIn$Gain, as.factor(datIn$Diet)), mean)
>> d1 d2 d3
>> 280 278 312
>>> by(datIn$Gain, datIn$Diet, mean)
>> datIn$Diet: d1
>> [1] 280
>> --------------------------------------------------------------
>> datIn$Diet: d2
>> [1] 278
>> --------------------------------------------------------------
>> datIn$Diet: d3
>> [1] 312
>>> library(dplyr)
>>> summarise(group_by(datIn, Diet), mean(Gain))
>> Source: local data frame [3 x 2]
>>
>> Diet mean(Gain)
>> (chr) (dbl)
>> 1 d1 280
>> 2 d2 278
>> 3 d3 312
>>> library(sqldf)
>>> sqldf("select Diet,avg(Gain) from datIn group by Diet")
>> Diet avg(Gain)
>> 1 d1 280
>> 2 d2 278
>> 3 d3 312
>>
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> 2015-10-27 22:45 GMT+01:00 eric <ericconchamunoz en gmail.com>:
>>
>>> tambien te sirve la funcion data.table ... si no tienes instalado el
>>> paquete:
>>>
>>> install.packages("data.table")
>>> library(data.table)
>>> jbe <- as.data.table(read.table("tusdatos.txt"))
>>> jbe.ave <- jbe[, .("ave"=mean(Gain)), by=.(Diet)]
>>>
>>>> jbe.ave
>>> Diet ave
>>> 1: d1 280
>>> 2: d2 278
>>> 3: d3 312
>>>
>>>
>>> Saludos.
>>>
>>> Eric.
>>>
>>>
>>> On 10/27/2015 05:16 PM, jbetancourt wrote:
>>>
>>>> Estimados
>>>>
>>>> Cuando existia epicalc, hab�a una manera muy f�cil de determinar la
>>>> media de una variable (en esta caso Gain) por grupos, en este caso (Diet).
>>>> ?Como se puede hacer ahora?
>>>>
>>>> Diet Gain
>>>> 1 d1 270
>>>> 2 d1 300
>>>> 3 d1 280
>>>> 4 d1 280
>>>> 5 d1 270
>>>> 6 d2 290
>>>> 7 d2 250
>>>> 8 d2 280
>>>> 9 d2 290
>>>> 10 d2 280
>>>> 11 d3 290
>>>> 12 d3 340
>>>> 13 d3 330
>>>> 14 d3 300
>>>> 15 d3 300
>>>>
>>>> Saludos
>>>> Jos�
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>>
>>> --
>>> Forest Engineer
>>> Master in Environmental and Natural Resource Economics
>>> Ph.D. student in Sciences of Natural Resources at La Frontera University
>>> Member in AguaDeTemu2030, citizen movement for Temuco with green city
>>> standards for living
>>>
>>> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
>>> lectores de correo.
>>>
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es en r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
Más información sobre la lista de distribución R-help-es