1.
v = as.vector(unlist(mylist[1]))
转发 :http://blog.csdn.net/skyonefly/article/details/50923896
2.
- list和vector不一样,后者存储的数据为同一种mode,list可以存储不同mode的数据,一个list就像是一个json,一个包涵很多键值对的数据结构
- list的创建方式
1) 带tag的方式:j<-list(name=”Joe”,salary=55000,union=T)
2) 无tag的方式:j<-list(“Joe”,55000,T)
3) vector的mode参数:z<-vector(mode=”list”),之后可以向z赋值 - list中元素的访问:
1) list_name$tag_name
2) list_name[[tag_name]]
3) list_name[[index]]
注意,list中元素的访问需要双层[[]],如果单层[index]或[tag_name]会访问到tag_name(或者index)与值本身,是个子list,而不仅仅是值;而且,双层[[]]中的只能是单一的tag_name或index,不能是类似[[1:3]]这样访问,而单层可以[1:3],提取出1~3作为子list - 不像vector在创建之后就无法增加、删除元素,list中的元素是可以动态增减的
- lapply()——list apply,接受两个参数,前者为list(如果是vector会自动转为list),第二个是方法。返回结果为list;sapply()——simplified apply
- list中可以嵌套list
- c()方法有个recursive参数,默认为FALSE,当设置为TRUE的时候,将返回“非”嵌套的结果(非常奇怪!)。如c(list(a=1,b=2,c=list(d=5,e=9)))乃是一个嵌套list,而c(list(a=1,b=2,c=list(d=5,e=9)),recursive=T)则是一个vector
http://blog.sina.com.cn/s/blog_aac531e001016xmy.html
3.
test for data type
is.numeric(), is.character(), is.vector(), is.matrix(), is.data.frame()
convert it
as.numeric(), as.character(), as.vector(), as.matrix(), as.data.frame
vector/matrix/data.frame
to one long vector |
to matrix |
to data frame |
|
from vector |
c(x,y) | cbind(x,y) rbind(x,y) |
data.frame(x,y) |
from matrix |
as.vector(mymatrix) | as.data.frame(mymatrix) | |
from data frame |
as.matrix(myframe) |