几种数据结构的常见比较
从数据内容以及数据属性--无维度属性vector-同质同长度matrix--异质同长度dataframe--异质异常度List
向量
创建空的向量创建--填充--添加--移除
a <- c()
vec <- rep(1:3,2)
append(vec,seq(2,33,2))
tt <- append(vec,seq(1,32,2))
因子
--用于分组
tt2 <- as.factor(append(vec,seq(2,33,2)) )
levels(tt2)
labels(tt2)
矩阵和数组
创建空的矩阵--创建--填充--添加--移除
##具有维度属性-dim()
tt3 <- matrix(vec,2,3) ##两行三列
matrix(vec,2,3,byrow = TRUE) #默认是按行填充
matrix(vec,2,3,byrow = FALSE) #按列填充
tt3[,1,drop=T]
tt3[,1,drop=F]
array()
数据框
创建空的数据框--创建--填充--添加--移除
dfr <- data.frame(tt,tt2,stringsAsFactors = F)
dfr
na.omit(dfr)
str(dfr[,1])
str(dfr[,1,drop=FALSE])
str(dfr[,2])
str(dfr[,2,drop=FALSE])
###在提取dataframe的行或者列的时候,通过设置,
##drop=FALSE可以放置提取的行或者列变为向量结构,保持dataframe结果。
#data.frame(colname1 =numeric(n), colname2 = character(n))
##cbind 将参数按列合并,使用前保证参数的行数相同--如不相同也不报错--自动填补-注意!!!
##rbind merge
##subset
列表
#----创建--填充--添加--移除
##创建空列表,然后对列表进行数据添加
a <- rep(0:9)
K <- length(a)
lst <- list(NULL)
length(lst) <- 2*(K-1)
i <- 1
j <- 1
repeat{
lst[[j]] <- c(a[0:i])
lst[[j+1]] <- c(a[i+1:(K-i)])
i <- i+1
j <- j+2
if(i> K-1) break
}
lst[[18]] <- NULL
lst[sapply(lst,is.null)] <- NULL
引用方式