【01R数据类型】

一、向量(vector)

与数学中向量不同,这里的向量是用于存储数值型、字符型或逻辑型数据的一维数组。R中最基础的数据类型是向量。向量化编程。

用函数c来创建向量

#定义一个数值型向量
x <- c(1,2,3,4,5)

#定义一个字符串型向量
y <- c("one","two","three")


#定义一个逻辑型向量
z <- c(TRUE,T,F)

#构建等差数列
c(1:100)

seq (from = 1, to = 100)

seq (from = 1,to=100,by = 2)


#生成重负数列,重复5次2
rep(2,5)

rep(x,5)

rep(x,each = 5)

#查看类型,一个向量内部必须是同一个类型
mode(z)

向量化编程的优势,R是统计学软件,避免很多循环。 

二、向量索引

1.正整数索引

R中元素索引从“1”开始,而不是“0”开始。

#创建字符串向量
z <- c("one","two","three")

# 判断某字符串是否在向量里
"one" %in% z

z[z %in% c("one","two")]

#为向量中每个元素命名
y <- c(1:5)
names(y) <- c("one","two","three","four","five")

#修改向量
x <- c(1,2,3)
x[4] <- 4
x #返回结果为 1,2,3,4


#插入数据,在第五个元素后插入一个33
append(x = v,values = 33, after = 5)

#删除向量
rm(v)

#删除向量中某个元素,先用负数索引,再把新的向量赋值给原来的向量


 三、向量运算

x <- c(1:10)
x+1 #向量中每个元素都加1,其他数学计算类似

#向量与向量的运算
y <- seq(1,100,length.out = 10)
x+y

#乘幂运算
x**y

# 取余运算
x%%y

# 整除运算
x%/%y

#对应位置运算,长的向量元素个数必须是段向量元素个数的整数倍

#向量运算函数
#绝对值
abs(x)

#平方根
sqrt(x)

#对数
log(16,base=2)

#指数
exp(x)

#向上取整
ceiling()

#向下取整
floor()

#求和运算
vec <- 1:100
sum(vec)

#方差
var(vec)

#标准差
sd(vec)

#中位数
median(vec)

#分位数
quantile(vec)

#返回索引值
t <- c(1,3,4,9,6)
which.max(t)    #返回值为4(9的索引)

四、矩阵  

矩阵要求所有元素的类型一致。

#创建矩阵
x <- 1:20
m <- matrix(x,nrow = 4,ncol = 5)
m <- matrix(1:20,4,5,byrow = T)  #按行排列


 m <- matrix(1:20,4,5)
 rnames <- c("r1","r2","r3","r4")
cnames <- c("c1","c2","c3","c4")
dimnames(m) <- list(rnames,cnames)

 五、数组

x <- 1:20
dim(x) <- c(2,2,5) #三维数组,长宽高为2,2,5

六、矩阵索引

m <- matrix(1:20,4,5)
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> m[1,2]
[1] 5
> m[1,c(3,4)]
[1]  9 13
> m[2]
[1] 2
> m[2,]
[1]  2  6 10 14 18
> m[,2]
[1] 5 6 7 8
> m[-1,2]
[1] 6 7 8
> m[-1,-2]
     [,1] [,2] [,3] [,4]
[1,]    2   10   14   18
[2,]    3   11   15   19
[3,]    4   12   16   20

 七、列表

列表中的对象可以是R中的任何数据结构,甚至是列表本身。

a <- 1:20     #创建向量
b <- matrix(1:20,4)   #创建矩阵
mlist <- list(a,b)    #创建列表存储
mlist

# 列表索引
mlist[1]  
state.center[c("x","y")]

删除列表元素可以采用负索引的方式,再赋值给原来的列表

八、数据框

数据框是一种表格式的数据结构。数据框实质上是一个列表。

#创建数据框
data.frame

#访问数据框
state[1]

state[c(2,4)]  #访问第二行第四列

#使用$访问数据
state$state.name

 九、因子

变量分类

1.名义型变量,“省份”“城市名”等

2.连续型变量

3.有序型变量,“优良中差”等(很像数据挖掘中的“序数属性”)

因子,在R中名义型变量和有序型变量称为因子。

#创建因子
f <- factor(c("red","greeb","red","blue","green")) 

#给因子排序
week <- factor(c("Mon","Thu","Fri","Fri","Wed","Sun","Tue","Sat"),ordered = T,levels = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun"))

cut函数 

十、缺失数据的分类

 NA代表缺失值。

na.rm (函数中参数)去除NA

 na.omit()

十一、字符串

#统计字符串长度
nchar("")

#合并向量
paste(c("ab","cd","ef"))

#
strsplit("hello world"," ")

十二、日期和时间

# 查看当前系统日期
Sys.Date()

# 将字符串转换成日期类型
a <- "20220630"
as.Date(a,format = "%Y-%m-%d")

#更多参数查看strftime
?strftime

#生成时间序列
seq(as.Date("2022-06-06"),as.Date("2022-07-06"),by = 5)

十三、常见问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

koyinfine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值