considere la siguiente situación donde tengo una lista de n matrices (esto es sólo datos ficticios en el ejemplo a continuación) en el objeto myList
¿Cómo se usa `[` correctamente con (l | s) aplicar para seleccionar una columna específica de una lista de matrices?
mat <- matrix(1:12, ncol = 3)
myList <- list(mat1 = mat, mat2 = mat, mat3 = mat, mat4 = mat)
deseo seleccionar una columna específica de cada una de las matrices y hacer algo con eso. Esto me dará la primera columna de cada matriz y la devolveré como una matriz (lapply()
me daría una lista, o bien está bien).
sapply(myList, function(x) x[, 1])
Lo que no parecen ser capaces de hacer es usar [
directamente como una función en mis sapply()
o lapply()
encantamientos. ?'['
me dice que necesito proporcionar el argumento j
como el identificador de columna. Entonces, ¿qué estoy haciendo mal que esto no funciona?
> lapply(myList, `[`, j = 1)
$mat1
[1] 1
$mat2
[1] 1
$mat3
[1] 1
$mat4
[1] 1
Cuando yo esperaría esto:
$mat1
[1] 1 2 3 4
$mat2
[1] 1 2 3 4
$mat3
[1] 1 2 3 4
$mat4
[1] 1 2 3 4
sospecho que estoy recibiendo el [
método equivocado, pero no puedo entender por qué? ¿Pensamientos?
+1 ¡Bravo! Muy bien hecho. –
+1 Así que esto funciona: lapply (myList, '[', i =, j = 1) – Shane
Tomó un tiempo para descubrir cómo escapar de los palos de atrás dentro del código en línea. Use
`foo`
. Ver http://meta.stackexchange.com/questions/12694/escaping-backticks-fails –