数据结构:向量、数据框、矩阵、列表
数据框约等于“表格”,数据框里的每一列只能同一种数据类型,单独拿出一列是向量,是为一个整体
一、向量的生成:
1、用c()逐一放到一起
> c(2,5,6,2,9)
[1] 2 5 6 2 9
> c("a","f","md","b")
[1] "a" "f" "md" "b"
2、连续数字用冒号“:”
> 1:5
[1] 1 2 3 4 5
3、有重复的用rep(),有规律的序列用seq(),随机数用rnorm()
#X重复3次
> rep("x",time=3)
[ 1] "x" "x" "x"
#从3到21,没间隔3取一个数
> seq(from=3,to=21,by=3)
[1] 3 6 9 12 15 18 21
#生成随机数
> rnorm(n=3)
[1] 1.1570975 -0.6824982 -0.2357576
4、通过组合,产生更为复杂的向量:paste0()
> paste0(rep("x",times=3),1:3)
[1] "x1" "x2" "x3"
向量取名注意事项:不建议使用:c,"x",seq,limma,1x,1bala,x 1,x-1,芭芭拉
二、对单个向量进行操作
1、赋值:规范的赋值符号为“<-";随意的写法"="
> x = c(1,3,5,1) #随意的写法
x <- c(1,3,5,1) #规范的赋值符号 Alt+减号
2、赋值+输出一起实现:用括号框住赋值或者赋值及输出写在一行,用分号区分
(x<-c(1,2,3))
[1] 1 2 3
或者
> x=c(1,2,3);x
[1] 1 2 3
3、简单数学计算
> x+1
[1] 2 3 4
> log(x)
[1] 0.0000000 0.6931472 1.0986123
> sqrt(x)
[1] 1.000000 1.414214 1.732051
4、根据某条件进行判断,生成逻辑值向量
> x>3
[1] FALSE FALSE FALSE
> x==3
[1] FALSE FALSE TRUE
5、初级统计
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
length(x) #长度
unique(x) #去重复
duplicated(x) #对应元素是否重复
table(x) #重复值统计
sort(x)#默认从小到大排序
sort(x,decreasing = F)
sort(x,decreasing = T)
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6)
重复的定义:从左往右数过去,第2次或多次出现的元素是重复
数据类型转换的优先顺序:字符型>数值型>逻辑型
三、对两个向量的操作
1、比较运算,生成等长的逻辑向量
x = c(1,3,5,1)
y = c(3,2,5,6)
> x == y
[1] FALSE FALSE TRUE FALSE
y == x
[1] FALSE FALSE TRUE FALSE
2、数学计算
x + y
[1] 4 5 10 7
3、连接
paste(x,y,sep=",")
[1] "1,3" "3,2" "5,5" "1,6"
4、当x和y不一样长,就会发生循环补齐
> x = c(1,3,5,6,2)
y = c(3,2,5)
x == y
[1] FALSE FALSE TRUE FALSE TRUE
5、利用循环补齐简化代码
paste0(rep("x",3),1:3)
[1] "x1" "x2" "x3"
paste0("x",1:3)
[1] "x1" "x2" "x3"
6、交集、并集、差集
intersect(x,y)
[1] 3 5 2
union(x,y)
[1] 1 3 5 6 2
setdiff(x,y) #返回在x里存在但在y里不存在的元素
[1] 1 6
setdiff(y,x)#返回在y里存在但在x里不存在的元素
numeric(0)
7、%in%
x %in% y #x的每个元素在y中存在吗
[1] FALSE TRUE TRUE FALSE TRUE
y %in% x #y的每个元素在x中存在吗
[1] TRUE TRUE TRUE
8、向量筛选(取子集)
x <- 8:12
x
[1] 8 9 10 11 12
#根据逻辑值取值,【】将TRUE对应的值挑选出来,FALSE丢弃
x[x==10]
[1] 10
x[x<12]
[1] 8 9 10 11
x[x %in% c(9,13)]
[1] 9
#根据位置取子集,【】为向量的下标,数字或者为由向量组成的下标
x[4]
[1] 11
x[2:4]
[1] 9 10 11
x[c(1,5)]#由向量组成的下标
[1] 8 12
x[-4]
[1] 8 9 10 12
x[-(2:4)]
[1] 8 12
9、修改向量中的某个/某些元素:取子集+赋值。R语言里的修改,都需要赋值,没有赋值就没有发生过
#改一个元素
x[4] <- 40
x
[1] 8 9 10 40 12
#改多个元素
x[c(1,5)] <- c(80,20)
x
[1] 80 9 10 40 20
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。