数据结构:向量、数据框、矩阵、列表
数据框约等于“表格”,数据框里的每一列只能同一种数据类型,单独拿出一列是向量,是为一个整体
一、向量的生成:
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 53、有重复的用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.23575764、通过组合,产生更为复杂的向量: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 33、简单数学计算 > x+1
[1] 2 3 4 > log(x)
[1] 0.0000000 0.6931472 1.0986123 > sqrt(x)
[1] 1.000000 1.414214 1.7320514、根据某条件进行判断,生成逻辑值向量 > x>3
[1] FALSE FALSE FALSE > x==3
[1] FALSE FALSE TRUE5、初级统计 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 FALSE2、数学计算 x + y [1] 4 5 10 73、连接 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 TRUE5、利用循环补齐简化代码 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 129、修改向量中的某个/某些元素:取子集+赋值。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 删除。