2015-08-13 4 views
0

Я хочу создать следующий списокОтказ добавлять элементы в список

myList[[1]][1] 10 
myList[[1]][2] 20 
myList[[1]][3] 30 40 

Так я пишу следующий код, но он, кажется, что я делаю это не так:

myList <- vector(mode = "list") 
myList[[length(myList)+1]] <- 10 
# myList[[length(myList)+1]][1] <- 10 # it seems more reasonable, but it does not work either 
myList[[length(myList)]][2] <- 20 
myList[[length(myList)]][3] <- c(30, 40) 
print(myList) 

Если треть элемент myList [[1]] [3] тоже есть список?

+0

Как насчет 'списка (список (10, 20, с (30, 40)) ' –

+0

Я хочу добавить элементы в список в интерактивном режиме. Вот почему я использую функцию длины. – Apostolos

+1

Вы можете использовать' c() 'on al ist тоже, как 'c (list (10), list (20))', поэтому вам действительно не нужно использовать длину. Я напишу что-нибудь для вас –

ответ

2

Вы не можете создать этот список:

myList[[1]][1] 10 
myList[[1]][2] 20 
myList[[1]][3] 30 40 

Это означало бы, что myList[[1]] будет равна:

[1] 10 
[2] 20 
[3] 30 40 

Который не является приемлемой переменной в R, так как вы намекаете, что элемент 3 вектора является самим вектором.

Однако это:

[[1]] 
[1] 10 
[[2]] 
[1] 20 
[[3]] 
[1] 30 40 

Так что вы можете сделать:

myList = list() 
myList = c(myList, 10) 
myList = c(myList, 20) 
myList = c(myList, list(c(30, 40))) 

Какие результаты в

> myList 
[[1]] 
[1] 10 

[[2]] 
[1] 20 

[[3]] 
[1] 30 40 
+0

Большое вам спасибо. Это был ясный ответ. – Apostolos

Смежные вопросы