列表转为向量
v = as.vector(unlist(mylist[1]))
列表与向量的区别
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]]
不像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
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
- | to 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(x,y) |
from data.frame | - | as.vector(mydataframe) | - |