2017-08-17 43 views
1

假設我有一個list如下:如何訪問列表中的某個功能?

mylist<-list(c(12,3,12,5),"Hello R",sin ) 

所以,我mylist第三元素是的sin(x)功能:

mylist[3] 
[[1]] 
function (x) .Primitive("sin") 

如果我想要什麼將一個元素傳遞給它?

比如我想sin(90)

我已經試過mylist[3](90)

mylist[3](90) 
Error: attempt to apply non-function 

回答

4

你非常非常接近。請注意,當您鍵入mylist[3]時,您所需的輸出旁邊還會顯示[[1]]。這意味着,這與元素列表1.你可以看到這一點,如果你這樣做

> str(mylist[3]) 
List of 1 
$ :function (x) 

要子集列表(不只是第三列表元素)的非常元素,你應該使用雙支架。

> mylist[[3]](90) 
[1] 0.8939967 

如何與列出R.工作

或者Here is a nice representation,你能說出你的元素和訪問他們的方式。

> mylist <- list(a = c(12,3,12,5), b = "Hello R", allmysins = sin) 
> mylist$allmysins(90) 
[1] 0.8939967