2015-03-27 18 views
6

Tôi muốn tạo danh sách trống để tôi có thể thay thế các phần tử của nó bằng các danh sách khác.tạo danh sách trống để điền vào danh sách trong R

Ví dụ

simulations = 10 
seeds = sample(10000:99999, simulations, replace=F) 

test_function <- function(seedX){ 
    lista = list(seedX=seedX, 
       dataframe=data.frame(x=runif(10, -5.0, 5.0),y=rnorm(10,mean = 0,sd = 1))) 
    return(lista) 
} 
results <- vector("list", simulations) 
results[1] = test_function(seedX = seeds[1]) 

tôi nhận được lỗi sau:

Warning message: 
In results[1] = test_function(seedX = seeds[1]) : 
    number of items to replace is not a multiple of replacement length 

Tôi đang làm gì sai?

Cảm ơn!

Trả lời

7

Chỉ cần thay đổi

results[1] = test_function(seedX = seeds[1]) 

để

results[[1]] <- test_function(seedX = seeds[1]) 

Sự thay đổi quan trọng là [...] yếu tố indexing hành vào danh sách [[...]] điều hành bộ phận lập chỉ mục, như bạn cần phải gán thành phần danh sách vào danh sách mới . Xem https://stat.ethz.ch/R-manual/R-devel/library/base/html/Extract.html.

(Bạn cũng nên sử dụng các nhà điều hành <- phân công thay vì =, chủ yếu là để làm theo quy ước R, mà còn vì = nghĩa một cái gì đó khác nhau (và do đó không thể được sử dụng cho các bài tập) trong những bối cảnh khác, chẳng hạn như tham số có tên thông số kỹ thuật trong các cuộc gọi chức năng, do đó, sử dụng <- cho phép tính nhất quán hơn.)

Các vấn đề liên quan