#r #list #vector
#r #Список #вектор
Вопрос:
Я хочу извлечь 3-й элемент второго вектора первого подсписка….. Это список векторов
A <- letters[1:4]
B <- letters[5:10]
C <- letters[11:15]
D <- c(1:10)
E <- c(20:5)
Z <- list(x = c(A,B,C), y = c(D, E))
который возвращает
>Z
$x
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o"
$y
[1] 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5
Я пробовал это
Z[[1]][B[3]]
но он возвращает
[1] NA
Заранее благодарю вас
Ответ №1:
Невозможно провести различие между A
, B
и C
, когда вы используете их в векторе ( c(A, B, C)
). Я думаю, что элементы в x
и y
должны быть в списке :
Z <- list(x = list(A,B,C), y = list(D, E))
Если у вас есть это, мы можем сделать :
Z[[1]][[2]][3]
#[1] "g"
Это вернет 3-й элемент второго вектора первого вложенного списка.
Ответ №2:
В списках у вас есть эти два варианта, например, извлечь второе значение из первого элемента вашего списка. Первая система действительна только тогда, когда вы даете имена элементам вашего списка.
Z$x[2]
Z[[1]][2]