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

R语言基础1

原创
作者头像
Erics blog
修改2023-09-11 12:12:50
3130
修改2023-09-11 12:12:50
举报
文章被收录于专栏:R语言数据分析

初识R语言——R语言基础1

R

安装4.3版本

R version 4.3.1

R Studio

新建R project,命名并选择路径。管理工作目录。

新建脚本,书写命令。

重启R语言,Session——restart R.

查询函数的功能:?sqrt()

运行代码:ctrl+enter

脚本注释:#

数据类型和向量

数据类型:数值型、字符型、逻辑型。

代码语言:txt
复制
==  #判断两个数据相等吗
!=  #判断两个数据不相等吗
class()##判断数据类型

逻辑条件 与&,或|,非!

is族函数,判断数据类型

代码语言:txt
复制
is.numeric()
is.logical()
is.character()

as族函数转化数据类型

代码语言:txt
复制
as.numeric()
as.logical()
as.character()
##能转换的才能转换

数据结构:

向量、数据框、矩阵、列表

生成向量

代码语言:txt
复制
c()
:  ##连续的数字
rep(),seq(),rnorm()
paste0()

Q1:汉字乱码怎么办?

对单个向量进行操作

1,赋值

代码语言:txt
复制
x<-c(1,3,5)
x=c(1,3,5)
(x<-c(1,3,5)) #赋值+输出一起实现
x<-c(1,3,5);x  #赋值+输出一起实现

2,简单数学计算

代码语言:txt
复制
x+1
log(x)
sqrt(x)

3,根据条件进行判断,生成逻辑值向量

代码语言:txt
复制
x>3
x==3

4,初级统计

代码语言:txt
复制
max(x)
min(x)
mean(x)
median(x)
var(x)  #方差
sd(x)  #标准差
sum(x) #总和
length(x) #长度
unique(x) #去重复
duplicated(x) #判断重复,对应元素在改集合中是否重复出现,第一次出现不算重复
!duplicated(x) #判断重复
table(x)#元素重复次数统计
sort(x)#从小到大排序
?sort()
sort(x, decreasing=F)
sort(x, decreasing=T)

对两个向量进行操作

1,比较运算,生成等长的逻辑运算

代码语言:txt
复制
x=c(1,3,5,1)
y=c(3,2,5,6)
x==y
y==x
###
> x=c(1,3,5,1)
> y=c(3,2)
> x==y
[1] FALSE FALSE FALSE FALSE
###循环补齐

利用循环补齐简化代码

代码语言:txt
复制
paste0(rep("x",3),1:3)
paste0("x",1:3)

2,数学计算

代码语言:txt
复制
x+y

3,连接

代码语言:txt
复制
paste(x,y,sep=",")

paste与paste0的区别

代码语言:txt
复制
> paste(x,y,sep=",")
[1] "1,3" "3,2" "5,5" "1,6"
> paste0(x,y)
[1] "13" "32" "55" "16"
> paste(x,y)
[1] "1 3" "3 2" "5 5" "1 6"

4,交集、并集、差集

代码语言:txt
复制
x=c(1,3,5,1)
y=c(3,2,5,6)
> intersect(x,y) ##交集
[1] 3 5
> union(x,y) ####并集
[1] 1 3 5 2 6
> setdiff(x,y)  ###x与y的补集
[1] 1
> setdiff(y,x) ###y与x的补集
[1] 2 6
#重点
%in%
> x%in%y  #x的每个元素在y中存在吗
[1] FALSE  TRUE  TRUE FALSE
> y%in%x  #y的每个元素在x中存在吗
[1]  TRUE FALSE  TRUE FALSE

x<12
#x[x<12]#从x里面选择大于12的值输出
向量筛选,取子集[]
x[4]
x[2:4]
x[c(1,5)]
x[-4]
x[-c(2:4)]

Tips数据类型转换的优先顺序

如何修改向量中的某个、某些元素

代码语言:txt
复制
> x<-c(8,9,23,5)
> x
[1]  8  9 23  5
> x[4]<-6 ###修改一个元素
> x
[1]  8  9 23  6
> x[c(1,2)]<-c(2,5)
> x
[1]  2  5 23  6

R语言的修改需要赋值,没有赋值就没有发生修改!

简单向量画图

代码语言:txt
复制
> k1=rnorm(12);k1
 [1]  0.3984753  0.1087545  0.6005117 -0.3122944  0.1458446
 [6] -1.4176147  0.7168302  0.6837698  1.1993463  1.2120804
[11] -0.2369449  0.4813943
> plot(k1)
###
> ?rep()
> k2=rep(c("a","b","c","d"),each=3);k2
 [1] "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"
> k2=rep(c("a","b","c","d"),times=3);k2
 [1] "a" "b" "c" "d" "a" "b" "c" "d" "a" "b" "c" "d"
boxplot(k1~k2)##k1纵坐标;k2横坐标

练习题:

代码语言:txt
复制
# 1.生成1到15之间所有偶数
seq(from=2,to=15,by=2)
# 2.生成向量,内容为:"student2"  "student4"  "student6"  "student8"  "student10" "student12"
# "student14" 
# 提示:paste0
paste0(rep("student",times=length(seq(from=2,to=15,by=2))),seq(from=2,to=15,by=2))
paste0(rep("student",times=7),seq(from=2,to=15,by=2))
paste0("student",seq(from=2,to=15,by=2))
# 3.将两种不同类型的数据用c()组合在一起,看输出结果
c(1,"a")
c("a",1)
c(TRUE,"a")
c(TRUE, FALSE, 4)

# 说明:运行load("gands.Rdata"),即可得到和使用我准备的向量g和s,
# 如有报错,说明你的代码写错或project没有正确打开
load("gands.Rdata")

# 4.用函数计算向量g的长度
length(g)

# 5.筛选出向量g中下标为偶数的基因名。
a=seq(from=2,to=100,by=2)
g[a]
###
seq(2,100,2);g[seq(2,100,2)]
# 6.向量g中有多少个元素在向量s中存在(要求用函数计算出具体个数)?将这些元素筛选出来
# 提示:%in%
g%in%s
table(g%in%s)
###
g[g%in%s]
###取交集会去重复,而%in%取子集不会去重复值!

# 7.生成10个随机数: rnorm(n=10,mean=0,sd=18),用向量取子集的方法,取出其中小于-2的值
a=rnorm(n=10,mean=0,sd=18)
a[a< -2]
a[a<(-2)]

# 8.x = 1:10  ;y = c(3:5,11,24)#从全集里面去掉交集
z=union(x,y)
z
r=intersect(x,y)
setdiff(z,r)
###或者
setdiff(union(x,y),intersect(x,y))
x<12
x[x<12]#从x里面选择大于12的值输出

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R
  • R Studio
  • 数据类型和向量
  • 对单个向量进行操作
  • 对两个向量进行操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档