векторы в списке — как извлечь элемент из одного из векторов

#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]