赞
踩
向量所有元素类型统一,结构单一。普通向量是原子型的
指定标签:
j <- list(name = "joe",salary = 55000, union = T)
不指定标签:这时有默认标签
j <- list("joe",55000,T)
单个值的索引 共三种方法:
- j <- list(name = "joe",salary = 55000, union = T)
- j$sal #可以缩写
- j[["salaryl"]]#这时不能缩写
- j[[2]]
多个值一起拿出来:
当有$ 属性时,说明是列表
- j[1:2] #可以访问前两个元素,本质上是两个子列表
- j[2] #是访问子列表,不是单个元素,虽然结果一样
列表创建后增加元素:
添加一个:
- z <- list(a = 'abc',b =12)
- z$c <- "sailing"
- z[[4]]<- "abh"
添加多个:
z[5:7] <- c(F,F,T)
删除一个:
直接赋值为NuLL
z$b <- NULL
注意删除z$b后,他之后元素的索引全部-1
m <- c(list('joe',55000,T),list(5))
c()中有一个可选参数,recursive,默认为FALSE,当令其为TRUE时将会将源列表的组件压平 。
- m <- c(list(a=1,b=2,c=list(d=5,e=7)),recursive = T)
- m
结果:
- m <- c(list('joe',55000,T),list(5))
- n <- length(m)
4.3.1 获得列表的标签
- m <- list(name = '123',int = 12,m ='ww')
- names(m)
unlist()返回的是一个向量,都是数字是是数值型,若果都有的话就是按照优先级,比如:数字和字符串最后都是字符串类型
- m <- list(name = 123,int = 12,m =11)
- unlist(m) #返回的是一个向量,都是数字是是数值型,若果都有的话就是按照优先级,比如:数字和字符串最后都是字符串类型
- z <- unlist(m)
这里的Z是一个数值型向量!,但是还是有元素名
- z <- unlist(m) #保留了元素名字,但是不能调用
- names(z)
- q <- unname(z) #去掉了元素名
- q
NULL<RAW<逻辑类型<整型<实数类型<复数类型<列表<表达式(把配对列表(parist当作普通列表))
用于批量调用函数
lapply():对列表按中的组件执行给定的函数,并返回一个列表。
lapply(list(1:3,15:19),median)
sapply():返回的向量
sapply(list(1:3,15:19),median)
- findwords <- function(tf){
- txt <- scan(tf,"")
- wd <- list()
- for (i in 1:length(txt)){
- wrd <- txt[i]
- wd[[wrd]] <- c(wd[[wrd]],i)
- }
- return (wd)
- }
- setwd("D:/Rfiles/project1")
- source("findwords.R",encoding="utf-8")
- findwords("1.txt")
结果:(部分)
列表是可以递归的(recursive),即列表的组件也可以是列表
- b <- list(u=5, v= 12)
- c <- list(w = 13)
- a <- list(b,c)
- a
输出结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。