前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R2向量

R2向量

原创
作者头像
用户10556374
修改2023-05-14 20:52:12
1.3K0
修改2023-05-14 20:52:12
举报
文章被收录于专栏:生信学习~~~生信学习~~~

title: "note2"

output: html_document

date: "2023-05-10"

R Markdown向量

代码语言:text
复制
#脚本与ppt对应 
#运行脚本:光标放在某一行,点”run”,快捷键ctrl+enter(mac:command+enter)
#向量的生成,对单个/两个向量进行的操作,取子集,元素修改。
#1.三种类型,格式大于内容,“4”代表字符,&:shift+7;|:shfit+enter上面的键,!:shift+1,赋值:alt-,<-,注意(-2),要么加括号,要么空一格,等于==,!=
#2.判断函数is.number(),T,F,NA(缺失值),转换as.number(),转换优先顺序 表格的行名和列名不属于表格内容,因此是4列
#注释1在R语言中,as.complex和as.numeric函数都可以用于将数据转换为复数类型或数字类型。但是,它们的主要区别在于:as.complex函数只能将字符串或数值向量转换为复数类型,而as.numeric函数可以将任何数据类型(如字符型、逻辑型等)转换为数字类型。当传入的参数无法转换为所需的类型时,as.complex函数会返回NA(缺失值),而as.numeric函数则会报错。对于复数类型,as.complex函数可以将字符串表示的实部和虚部分离开,并分别转换为相应的数值;而as.numeric函数只能将单个数值转换为数字类型。因此,当需要将字符串表示的复数转换为复数类型时,应使用as.complex函数;而对于其他类型的数据,应使用as.numeric函数。
#3
#####2.1.向量生成?#####

#(1)用 c() 结合到一起,数据类型转换的优先顺序,为什么转换,因为只会输出一种数据类型
c(2,5,6,2,9) 
代码语言:txt
复制
## [1] 2 5 6 2 9
代码语言:text
复制
c("a",4)
代码语言:txt
复制
## [1] "a" "4"
代码语言:text
复制
c(4,TRUE)
代码语言:txt
复制
## [1] 4 1
代码语言:text
复制
#(2)连续的数字用冒号“:” 
1:5
代码语言:txt
复制
## [1] 1 2 3 4 5
代码语言:text
复制
#(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm()
rep(c("a","b"), 3)  
代码语言:txt
复制
## [1] "a" "b" "a" "b" "a" "b"
代码语言:text
复制
rep(c("a","b"),each=3)
代码语言:txt
复制
## [1] "a" "a" "a" "b" "b" "b"
代码语言:text
复制
seq(from = 3,to = 21,by = 3)
代码语言:txt
复制
## [1]  3  6  9 12 15 18 21
代码语言:text
复制
rnorm(n = 3)
代码语言:txt
复制
## [1] -0.8559376  0.2752149 -0.8164835
代码语言:text
复制
#(4)通过组合,产生更为复杂的向量.循环补齐(向量长度不相等+等位运算),简化代码。
paste0(rep("x"),1:3)
代码语言:txt
复制
## [1] "x1" "x2" "x3"
代码语言:text
复制
#####2.2对单个向量进行的操作####
#(1)赋值给一个变量名
x = c(1,3,5,1) #随意的写法
x
代码语言:txt
复制
## [1] 1 3 5 1
代码语言:text
复制
x <- c(1,3,5,1) #规范的赋值符号 Alt+减号
x#输出
代码语言:txt
复制
## [1] 1 3 5 1
代码语言:text
复制
#赋值+输出一起实现,分隔号;
x <- c(1,3,5,1);x
代码语言:txt
复制
## [1] 1 3 5 1
代码语言:text
复制
(x <- c(1,3,5,1))
代码语言:txt
复制
## [1] 1 3 5 1
代码语言:text
复制
#(2)简单数学计算
x+1
代码语言:txt
复制
## [1] 2 4 6 2
代码语言:text
复制
log(x)
代码语言:txt
复制
## [1] 0.000000 1.098612 1.609438 0.000000
代码语言:text
复制
sqrt(x)
代码语言:txt
复制
## [1] 1.000000 1.732051 2.236068 1.000000
代码语言:text
复制
#(3)根据某条件进行判断,生成逻辑型向量
x>3
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE
代码语言:text
复制
x==3
代码语言:txt
复制
## [1] FALSE  TRUE FALSE FALSE
代码语言:text
复制
#(4)初级统计
max(x) #最大值
代码语言:txt
复制
## [1] 5
代码语言:text
复制
min(x) #最小值
代码语言:txt
复制
## [1] 1
代码语言:text
复制
mean(x) #均值
代码语言:txt
复制
## [1] 2.5
代码语言:text
复制
median(x) #中位数
代码语言:txt
复制
## [1] 2
代码语言:text
复制
var(x) #方差
代码语言:txt
复制
## [1] 3.666667
代码语言:text
复制
sd(x) #标准差
代码语言:txt
复制
## [1] 1.914854
代码语言:text
复制
sum(x) #总和
代码语言:txt
复制
## [1] 10
代码语言:text
复制
length(x) #长度,7怎么得到?
代码语言:txt
复制
## [1] 4
代码语言:text
复制
unique(x) #去重复,第一次出现视为没有重复
代码语言:txt
复制
## [1] 1 3 5
代码语言:text
复制
duplicated(x) #对应元素是否重复
代码语言:txt
复制
## [1] FALSE FALSE FALSE  TRUE
代码语言:text
复制
table(x) #重复值统计
代码语言:txt
复制
## x
## 1 3 5 
## 2 1 1
代码语言:text
复制
sort(x)
代码语言:txt
复制
## [1] 1 1 3 5
代码语言:text
复制
sort(x,decreasing = F)
代码语言:txt
复制
## [1] 1 1 3 5
代码语言:text
复制
sort(x,decreasing = T)
代码语言:txt
复制
## [1] 5 3 1 1
代码语言:text
复制
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6,4)
#(1)比较运算,生成等长的逻辑向量:循环补齐
x == y 
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE FALSE
代码语言:text
复制
y == x
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE FALSE
代码语言:text
复制
#(2)数学计算
x + y
代码语言:txt
复制
## [1]  4  5 10  7  5
代码语言:text
复制
#(3)连接
paste(x,y,sep=",")
代码语言:txt
复制
## [1] "1,3" "3,2" "5,5" "1,6" "1,4"
代码语言:text
复制
#paste与paste0的区别
paste(x,y)
代码语言:txt
复制
## [1] "1 3" "3 2" "5 5" "1 6" "1 4"
代码语言:text
复制
paste0(x,y)
代码语言:txt
复制
## [1] "13" "32" "55" "16" "14"
代码语言:text
复制
paste(x,y,sep = "")
代码语言:txt
复制
## [1] "13" "32" "55" "16" "14"
代码语言:text
复制
paste(x,y,sep = ",")
代码语言:txt
复制
## [1] "1,3" "3,2" "5,5" "1,6" "1,4"
代码语言:text
复制
#注释2在R语言中,paste和paste0都是用于连接(concatenate)字符串的函数。它们的区别如下:paste()函数:将多个输入对象连接成一个字符串,并在每两个相邻的对象之间添加分隔符,默认为一个空格。例如,paste("a", "b", "c")返回值为 "a b c"。paste0()函数:与paste()函数类似,但是不会在对象之间添加分隔符。例如,paste0("a", "b", "c")返回值为"abc"。因此,如果你需要在字符串之间添加分隔符,则使用paste()函数;如果你不需要添加分隔符,则使用paste0()函数可以使代码更简洁易读。这里还有一些其他的区别:paste函数可以接受多个参数,并将它们连接起来,而paste0只接受两个或多个参数。paste函数的默认分隔符是空格,但是你可以使用sep参数来指定自己想要的分隔符。而paste0没有分隔符参数,始终不添加分隔符。总之,paste()和paste0()函数的主要区别在于是否添加分隔符。
#当两个向量长度不一致,循环补齐(向量长度不相等+等位运算),简化代码。
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y # 啊!warning!
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE  TRUE
代码语言:text
复制
#循环补齐--看ppt

#利用循环补齐简化代码
paste0(rep("x",3),1:3)
代码语言:txt
复制
## [1] "x1" "x2" "x3"
代码语言:text
复制
paste0("x",1:3)
代码语言:txt
复制
## [1] "x1" "x2" "x3"
代码语言:text
复制
#(4)交集、并集、差集
intersect(x,y)
代码语言:txt
复制
## [1] 3 5 2
代码语言:text
复制
union(x,y)
代码语言:txt
复制
## [1] 1 3 5 6 2
代码语言:text
复制
setdiff(x,y)
代码语言:txt
复制
## [1] 1 6
代码语言:text
复制
setdiff(y,x)
代码语言:txt
复制
## numeric(0)
代码语言:text
复制
x %in% y #x的每个元素在y中存在吗,并不是运算,所以看问的元素有几个就输出几个
代码语言:txt
复制
## [1] FALSE  TRUE  TRUE FALSE  TRUE
代码语言:text
复制
y %in% x #y的每个元素在x中存在吗
代码语言:txt
复制
## [1] TRUE TRUE TRUE
代码语言:text
复制
#注释3在R语言中,setdiff()函数用于求两个集合的差集(即除去两个集合中重复元素后仅出现在第一个集合中的元素集合),并返回结果。其基本语法格式如下:复制代码setdiff(x,y)其中,x和y是两个向量或集合,函数返回在x中出现而在 中没有出现的元素举个例子,在如下代码中:复制代码x <- c(1,2,3,4,5)y<-c(3,4,5,6)setdiff(x,y)函数将返回[1]12,因为在x中出现但在y中没有出现的数字有1和2需要注意的是,这里的集合是指向量,并且setdiff()函数只会保留中不重复的元素如果想保留所有元素,包括重复元素,则应使用 %in% 操作符或者 duplicated()函数
#####2.4.向量筛选(取子集)--看ppt#####

x <- 8:12
#根据逻辑值取子集,中括号里是逻辑值T/F
x[x == 10]
代码语言:txt
复制
## [1] 10
代码语言:text
复制
x[x < 12]
代码语言:txt
复制
## [1]  8  9 10 11
代码语言:text
复制
x[x %in% c(9,13)]
代码语言:txt
复制
## [1] 9
代码语言:text
复制
#根据位置取子集,中括号里是数字或向量(3种,c/:/rep(),seq),rnorm()),所以x[1,5]会报错,因为中括号里啥也不是
x[4]
代码语言:txt
复制
## [1] 11
代码语言:text
复制
x[2:4]
代码语言:txt
复制
## [1]  9 10 11
代码语言:text
复制
x[c(1,5)]#c(1,5)代表位置1和5,而1,5啥也不是
代码语言:txt
复制
## [1]  8 12
代码语言:text
复制
x[-4]#去掉第四个位置
代码语言:txt
复制
## [1]  8  9 10 12
代码语言:text
复制
x[-(2:4)]#去掉234的位置
代码语言:txt
复制
## [1]  8 12
代码语言:text
复制
####2.5.修改向量中的某个/某些元素:取子集+赋值
x
代码语言:txt
复制
## [1]  8  9 10 11 12
代码语言:text
复制
#改一个元素
x[4] <- 40
x
代码语言:txt
复制
## [1]  8  9 10 40 12
代码语言:text
复制
#改多个元素
x[c(1,5)] <- c(80,20)
x
代码语言:txt
复制
## [1] 80  9 10 40 20
代码语言:text
复制
#### 2.6 简单向量作图
k1 = rnorm(12);k1
代码语言:txt
复制
##  [1] -0.6812778  0.9673871 -1.4538542 -0.1372082
##  [5]  0.3942805  0.5780699  2.2018450 -1.6925641
##  [9] -0.9724937 -0.5663234  1.6842077 -2.3597461
代码语言:text
复制
k2 = rep(c("a","b","c","d"),each = 3);k2
代码语言:txt
复制
##  [1] "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d"
## [12] "d"
代码语言:text
复制
plot(k1)
代码语言:text
复制
boxplot(k1~k2) #课后试着搜索boxplot表达什么意思

引用生信技能书 This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

代码语言:text
复制
summary(cars)
代码语言:txt
复制
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

1记忆卡片
1记忆卡片
2数据类型转换
2数据类型转换
3数据结构
3数据结构
4.length-7怎么得到
4.length-7怎么得到
5sort-R语言的默认思想
5sort-R语言的默认思想
6修改都要赋值才能输出
6修改都要赋值才能输出
9表格列数
9表格列数
7向量筛选【】逻辑
7向量筛选【】逻辑
8boxplot
8boxplot

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

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

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

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

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