R语言基础入门一
#R有5种基本类型:character numeric integer logical complex
x <- "hello world" #赋值
x <- 1.1
x <- 1L
x <- TRUE
x <- 1+2i
class(x) #类型值
#Vector 向量创建
x <- vector("character",length = 10)
x <- 1:4
x <- c(1,2,3,4)
#强制转换类型
as.character(x)
as.numeric(x)
as.logical(x)
#命名
x <- c(1,2,3,4)
names(x) <- c("a","b","c","d")
# 矩阵
x <- matrix(1:6 , nrow = 3,ncol = 2 ) #创建3x2矩阵
dim(x) #查看维度
attributes(x) #查看当前属性y <- 1:6 #创建2x3矩阵
dim(y) <- c(2,3)
# 矩阵拼接
y1 <- matrix(1:6 , nrow = 3,ncol = 2 )
y2 <- matrix(1:6 , nrow = 3,ncol = 2 )
rbind(y1,y2) # 6x2矩阵
cbind(y1,y2) # 3x4矩阵
#数组
x <- array(1:24,dim = c(4,6)) #4x6 数组/矩阵
x <- array(1:24,dim = c(4,6,2)) #4x6 三维数组/矩阵
#列表
l <- list("a",2,10L,1+2i,TRUE)
l <- list(a=1,b=2,c=3)
#分类数据
x <- factor(c("female","male","female","female","male"))
x <- factor(c("female","male","female","female","male"),levels = c("male","female")) #levels显示顺序
table(x) #统计female和male个数
#判断缺失值
x <- c(1,NA,2,NaN,3) #NA:缺失数据 NaN:无意义的数,比如sqrt(-2), 0/0。
is.na(x) #FALSE TRUE FALSE TRUE FALSE
is.nan(x) #FALSE FALSE FALSE TRUE FALSE
#数据框 data frame
df <- data.frame(id=c(1,2,3,4),name=c("x1","x2","x3","x4") ,gender=c(TRUE,TRUE,FALSE,FALSE))
NROW(df)
NCOL(df)
df <- data.frame(id=c(1,2,3,4),score=c(5,6,7,8))
data.matrix(df)
#取值 基本方法
x <- 1:10 # 1 2 3 4 5 6 7 8 9 10
x[1] # 1
x[5] #5
x[1:5] #1 2 3 4 5
x[6:10] #6 7 8 9 10
x[x>5] #6 7 8 9 10
x>5 # FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
x[x>5 & x<7] #6
x[x<3 | x>7] #1 2 8 9 10
# 矩阵取值
x <- matrix(1:6,nrow = 2,ncol = 3)# [,1] [,2] [,3]
#[1,] 1 3 5
#[2,] 2 4 6x[1,2] # 3
x[1,] # 1 3 5
x[,1] # 1 2
x[2,c(1,3)] # 2 6
x[1,2,drop = FALSE] #矩阵格式
# [,1]
# [1,] 3
#列表的子集
x <- list(id=1:4 ,height=170,gender="male")
x[1]
#$id
#[1] 1 2 3 4x["id"]
#$id
#[1] 1 2 3 4x[[1]] #1 2 3 4
x[["id"]] #1 2 3 4
x$id #1 2 3 4
x[c(1,3)]
#$id
#[1] 1 2 3 4#$gender
#[1] "male"
#部分匹配
l <- list(abcde=1:10)
l$abcde #1 2 3 4 5 6 7 8 9 10
l$a #1 2 3 4 5 6 7 8 9 10 结果一样
#缺失值处理
x <- c(1,NA,2,NA,3)
x[!is.na(x)] #1 2 3x <- c(1,NA,2,NA,3)
y <- c("a","B",NA,"C",NA)
z <- complete.cases(x,y) #TRUE FALSE FALSE FALSE FALSE xy同时为非缺失值
x[z] # 1
y[z] # alibrary(datasets)
head(airquality) #显示前面6行
g <- complete.cases(airquality)
airquality[g,][1:10,] #筛选非缺失值的所有行并且显示1-10行
#lapply 循环遍历
x <- list(a=1:10, b=c(4,5,6,5,5))
lapply(x,mean) #$a 5.5 $b 5
sapply(x,mean) #简化返回向量和矩阵
#apply
x <- matrix(1:16,4,4)
apply(x, 2, mean) #2.5 6.5 10.5 14.5 第二个维度求平均
apply(x, 2, sum) #10 26 42 58 第二个维度求和
#tapply 数据按照不同方式分组
x <- c(rnorm(5),runif(5),rnorm(5,1))
f <- gl(3,5) #分成3个级别 每个级别5个元素
tapply(x, f,mean) #-0.1718301 0.3723140 1.2221491
#split 切割分组
x <- c(rnorm(5),runif(5),rnorm(5,1))
f <- gl(3,5) #分成3个级别 每个级别5个元素
split(x,f) #分成三组
lapply(split(x,f),mean)#分组求平均
#排序
x <- data.frame(v1=1:5,v2=c(10,7,9,6,8),v3=11:15,v4=c(1,1,1,2,1))
sort(x$v2) #对某列升序排序 6 7 8 9 10
sort(x$v2,decreasing = TRUE) #降序排序 10 9 8 7 6
order(x$v2) # 得到排序结果序号
x[order(x$v2),] #对整个数据集按v2列升序排序改变行号
x[order(x$v2,decreasing = TRUE),] #对整个数据集按v2列降序排序改变行号
#数据总结
head(airquality,10) #查看前10条数据
tail(airquality) #后面6条
summary(airquality) #数据总结
str(airquality) #数据查看
table(airquality$Month) #月份出现次数
table(airquality$Ozone,useNA = "ifany") #臭氧含量分布包含NA
table(airquality$Ozone,airquality$Month) #两个数据总结any(is.na(airquality$Ozone)) #判断是否存在缺失值
sum(is.na(airquality$Ozone)) #缺失值个数
all(airquality$Month<12) #月份数值是否都小于12
Titanic <- data.frame(Titanic)
dim(Titanic) #维度
x <- xtabs(Freq ~ Class + Age,data=Titanic) #交叉表
ftable(x) #扁平化显示数据object.size(airquality) #数据大小
print(object.size(airquality),units = "Kb") #数据大小
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
