2011-03-16 12 views
22

Duplicar posible:
how to apply a function to every row of a matrix (or a data frame) in RAplicar una función a cada fila de una trama de datos en I

R - how to call apply-like function on each row of dataframe with multiple arguments from each row of the df

quiero aplicar una función a cada fila de un conjunto de datos marco, sin embargo, R lo aplica a cada columna de forma predeterminada. ¿Cómo lo forzo de otra manera?

> a = as.data.frame(list(c(1,2,3),c(10,0,6)),header=T) 
> a 
    c.1..2..3. c.10..0..6. 
1   1   10 
2   2   0 
3   3   6 
> sapply(a,min) 
c.1..2..3. c.10..0..6. 
      1   0 

quería algo como

1 2 
2 0 
3 3 
+2

¿Por qué crees que necesitas utilizar 'sapply' para data.frames? –

+1

Vi a lapply doc decir que devuelve una lista, y sapply doc dijo que es una versión fácil de usar que devuelve un objeto del tipo apropiado. – highBandWidth

+3

'lapply()' y 'sapply()' operan sobre los * componentes * de un vector. Ese vector puede ser un vector atómico (por ejemplo, '1: 10') o una lista. Para una lista, aplica la función a cada componente de la lista. Un marco de datos es un caso especial de una lista, donde las "columnas" son los componentes, por lo tanto, 'lapply()' y 'sapply()' funcionan en las "columnas" de un marco de datos. –

Respuesta

34

¿Quieres apply (véase la documentación para ello). apply(var,1,fun) se aplicará a las filas, apply(var,2,fun) se aplicará a las columnas.

> apply(a,1,min) 
[1] 1 0 3 
+0

¿Qué pasa si quiero el mínimo de una columna determinada? di la columna 2. – Selvam

+1

@Selvam, 'min (a [, 2])' - pero probablemente deberías leer algo del material introductorio R (como http://cran.r-project.org/doc/manuals /R-intro.html#Array-indexing) - esa es una pregunta bastante básica. –

+17

Esto no responde exactamente las preguntas originales. 'apply()' intentará convertir data.frame en una matriz (ver los documentos de ayuda). Si no se convierte con gracia debido a los tipos de datos mixtos, no estoy muy seguro de lo que resultaría. –

Cuestiones relacionadas