[R-es] Como modificar valores en un data frame

daniel daniel319 en gmail.com
Lun Jul 27 22:07:05 CEST 2015


Por favor mantén tus consultas dentro de r-help-es, a otras personas
también puede serle útil la pregunta o las respuestas, además tendrás
oportunidad de mejores respuestas de otros participantes.

Interpreto que quieres algo así (uso mi ejemplo)
colMeans(aves)
# area  dist distm  otro
# 5.5   5.5   5.5   5.5
colMeans(aves[aves$area > 6,1:2])
#area dist
# 8.5  6.5

# si lo que buscas no exite como col... puedes usar apply
apply(aves[aves$area <= 6,1:2], 2, median)
# area dist
# 3.5  3.5

Te recomiendo leas ?aggregate, en el paquete plyr la función ddply o en el
paquete data.table la función data table ( no estoy seguro si usando estas
funciones primero no tienes que crear una nueva columna con los grupos > 6
y <= 6, pero te lo dejo a ti.

El 27 de julio de 2015, 16:32, Susana deus alvarez <
susanadeus.deusalvarez en gmail.com> escribió:

> Perdón que te haga otra pregunta, pero también estoy trancada en otra
> cosa: con la matriz aves cree una nueva matriz donde divide la variable
> area en dos, una de area pequeña y otra de area grande. Entonces me
> quedaría un nuevo data.frame con 4 columnas: abundancia, area, area 2
> (mayor a 10) y area3 (menor a 10), entonces querría hacer la media de la
> abundancia en función del area2, lo intento asi: media<- tapply(dframe$V1,
> dframe$area2, mean)
> Pero no es asi porque yo quiero un solo número, no que me haga la media de
> cada valor de area2, por lo que no se como hacer
>
> Muchas gracias
>
> Saludos
>
>
>
> El 27 de julio de 2015, 15:29, daniel <daniel319 en gmail.com> escribió:
>
>> Algo así es lo que buscas?
>>
>> aves <- data.frame( area = sample(10), dist = sample(10), distm =
>> sample(10), otro = sample(10))
>> str(aves)
>> #'data.frame': 10 obs. of  4 variables:
>> # $ area : int  4 6 10 2 9 7 3 8 1 5
>> # $ dist : int  8 2 10 6 7 5 1 3 9 4
>> # $ distm: int  1 9 7 10 6 4 3 8 2 5
>> # $ otro : int  9 3 10 4 7 5 8 1 6 2
>> avelog <- log10(aves[, c("area", "dist", "distm")])
>> str(avelog)
>> #'data.frame': 10 obs. of  3 variables:
>> # $ area : num  0.602 0.778 1 0.301 0.954 ...
>> # $ dist : num  0.903 0.301 1 0.778 0.845 ...
>> # $ distm: num  0 0.954 0.845 1 0.778 ...
>> ?log10
>>
>> Espero haber entendido bien tu pregunta.
>>
>> Daniel Merino
>>
>> El 27 de julio de 2015, 15:11, Susana deus alvarez <
>> susanadeus.deusalvarez en gmail.com> escribió:
>>
>>> Estimad en s, quería realizar una consulta
>>>
>>> Dado un data frame llamado aves, como puedo sustiuir las variables area,
>>> dist y distm por sus logaritmos en base10 y volver a crear un data frame?
>>>
>>>
>>> Muchas gracias
>>>
>>> Saludos
>>>
>>> Susana
>>>
>>>         [[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
>>>
>>
>>
>>
>> --
>> Daniel
>>
>
>


-- 
Daniel

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es