前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R基础(二)

R基础(二)

原创
作者头像
xiaoxiang学生信
修改2023-03-09 20:04:27
3040
修改2023-03-09 20:04:27
举报
文章被收录于专栏:学生信_小向
  1. 数据结构:向量,数据框,矩阵,列表
  2. 数据框中的一列只能是一种数据类型,一列是一个向量
  3. 一个向量只能有一种数据类型,可以有重复值。
  4. 数据类型转换的优先顺序: 数值型转换为字符型,逻辑型转换为字符型,逻辑型转换为数值型(TRUE=1,6.FALSE=0),数值型转换为数值型(0 = FALSE ,非0的都为TURE)
  5. == 是将X中的每个元素和y中的每个元素一对一比较,%in%是将x中的每一个元素分别和y中的所有元素全部比较
  6. 命令提示符 " > "
  7. 中括号取子集, 按照逻辑值:元素 和 括号中的逻辑值向量需要一一对应 按照位置:中括号里是由下标位置组成的向量
  8. 修改后需要赋值才能生效

#(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()

rep("x",times=3)undefined1 "x" "x" "x" seq(from=3,to=21,by=3) 1 3 6 9 12 15 18 21 rnorm(n=3) 1 0.4578182 0.4485371 -0.5944111 #(4)通过组合,产生更为复杂的向量。

paste0(rep("x",times=3),1:3) 1 "x1" "x2" "x3" paste(rep("x",times=3),1:3) 1 "x 1" "x 2" "x 3" paste(rep("x",times=3),1:3, sep = "_") 1 "x_1" "x_2" "x_3"

#####2.2对单个向量进行的操作####

#(1)赋值给一个变量名

x = c(1,3,5,1) #随意的写法 x 1 1 3 5 1 x <- c(1,3,5,1) #规范的赋值符号 Alt+减号 x 1 1 3 5 1 #赋值+输出一起实现

x <- c(1,3,5,1);x 1 1 3 5 1 (x <- c(1,3,5,1)) 1 1 3 5 1

#(2)简单数学计算

x 1 1 3 5 1 x+1 1 2 4 6 2 log(x) 1 0.000000 1.098612 1.609438 0.000000 sqrt(x) 1 1.000000 1.732051 2.236068 1.000000

#(3)根据某条件进行判断,生成逻辑型向量

x>3 1 FALSE FALSE TRUE FALSE x==3 1 FALSE TRUE FALSE FALSE

#(4)初级统计

max(x) #最大值 1 5 min(x) #最小值 1 1 mean(x) #均值 1 2.5 median(x) #中位数 1 2 var(x) #方差 1 3.666667 sd(x) #标准差 1 1.914854 sum(x) #总和 1 10 length(x) #长度 一个向量中有几个元素/数据 1 4 unique(x) #去重复 重复的定义,从左往右数出现第2次、第n次出现的元素,只保留第一次出现的元素 1 1 3 5 duplicated(x) #判断对应元素是否重复 第2次,n次出现的元素为重复TRUEundefined1 FALSE FALSE FALSE TRUE !duplicated(x) 1 TRUE TRUE TRUE FALSE table(x) #重复值统计 x

1 3 5

2 1 1

sort(x) #排序,默认从小到大 1 1 1 3 5 sort(x,decreasing = F) 1 1 1 3 5 sort(x,decreasing = T) 1 5 3 1 1

#####2.3.对两个向量进行的操作#####

x = c(1,3,5,1) y = c(3,2,5,6) #(1)比较运算,生成等长的逻辑向量 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"

#循环补齐:等位运算时,两个向量长度不一样,会循环短的向量

a = c(3,2,5) b = c(2,2,2,2,2,2,2,2,9) a==b 1 FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE

#paste与paste0的区别

paste(x,y) 1 "1 3" "3 2" "5 5" "1 6" paste0(x,y) 1 "13" "32" "55" "16" paste(x,y,sep = "") 1 "13" "32" "55" "16" paste(x,y,sep = ",") 1 "1,3" "3,2" "5,5" "1,6"

#当两个向量长度不一致

x = c(1,3,5,6,2) y = c(3,2,5) x == y # 啊!warning! 1 FALSE FALSE TRUE FALSE TRUE

Warning message:

In x == y : longer object length is not a multiple of shorter object length

#循环补齐--看ppt

#利用循环补齐简化代码

paste0(rep("x",3),1:3) 1 "x1" "x2" "x3" paste0("x",1:3) 1 "x1" "x2" "x3" x = c(1,3,5,6,2) y = c(3,2,5) #(4)交集、并集、差集

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) x %in% y #x的每个元素在y中存在吗 1 FALSE TRUE TRUE FALSE TRUE y %in% x #y的每个元素在x中存在吗 1 TRUE TRUE TRUE

#####2.4.向量筛选(取子集)--看ppt#####

筛选undefinedx <- 8:12 #根据逻辑值取子集 xx==10 10 xx<12 8 9 10 11

xx %in% c(9,13) 9

#根据位置取子集 x4 11

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档