day1and 2 R语言:初遇向量

2024-03-11 10:52:24 浏览数 (2)

1.向量运算

代码语言:R复制
#比较运算的结果是逻辑值
3==5;3!=4
#逻辑运算(与&、或|)
3<5 &4>5;3<5|4>5
#非!
!(4>5)

1.1数据类型的转换和判断

代码语言:R复制
#is族函数,判断,返回值为TRUE或FALSE
is.numeric() #是否数值型数据
is.logical() #是否逻辑型数据
is.character()#是否字符型数据
##as族函数实现数据类型的转换
as.numeric() #转换为数值型
as.logical() #转换为逻辑型
as.character()#转换为字符型

1.2脚本打开乱码的解决方案

2.向量的生成

代码语言:R复制
c()#用c()逐一放到一起 #1:5#连续的数字用冒号:
rep()#有重复的用
rep("x",times=3)
seq()#有规律的序列用
seq(from=3,to=21,by=3)
rnorm()#随机数
rnorm(n=3)
paste0(rep("x", times=3),1:3)#无缝的连接#paste(x,y,sep=" ")

#对向量的操作

代码语言:R复制
### 2.1赋值
x <- c(1,3,5,1) #规范的赋值符号
x = c(1,3,5,1) #随意的写法
(x <- c(1,3,5,1)) #赋值 输出一起实现
x <- c(1,3,5,1);x
#数学运算
#比较运算,生成逻辑值向量或等长的逻辑向量
#初级统计
length()#长度
unique()#去重复
duplicated()#判断是否发生了重复
k=duplicated();!k#逆转
table()#重复值统计
sort()#排序,默认从小到大
sort(x,decreasing = T)

2.2两个向量的连接

代码语言:R复制
x=c(1,3,5,1)
y=c(3,2,5,6)
paste(x,y,sep=",")

2.3当两个向量长度不一样

代码语言:R复制
x=c(1,3,5,6,2);y=(3,2,5)
x==y#x和y长度不一样,发生循环补齐
#循环补齐发生的条件:1.等位运算2.两个向量长度不相等
paste0(rep("x",3),1:3)
paste0("x",1:3)#利用循环补齐简化代码
##交集、并集、差集
intersect()#交集
union()#并集
setdiff(x,y)#在x里有,在y里没有

2.4筛选向量

代码语言:R复制
x%in%y #x的每个元素在y中存在吗,对x进行筛选
#x==y与x%in%y不同
[ ]#向量筛选,取子集#按照逻辑值,中括号里是与x长度相等且一一对应的
                    #按照位置,中括号里是由x下标组成的向量
x=c(8,9,10,11,12)
x[x<4]
x[x%in%c(9,13)]#将TRUE对应的值挑出来,FALSE丢弃
x[4]#将x的第4个数取出来
x[2:4]
x[c(1,5)]#将x的第1个和第5个数取出来
x[-4]#反选第4个数

2.5修改向量

代码语言:R复制
x=c(8,9,10,11,12)
#改一个元素
x[4]<- 40;x
#改多个元素
x[c(1,5)]<-c(80,20);x
#修改需要赋值,没赋值等于没发生过
x=c(1,5,3,44,2);x
x[x>3];x
x=x[x>3];x
x=as.character(x)
k1=rnorm(12);k1;plot(k1)#简单向量作图
k2=rep(c("a","b","c","d",each=3));k2
boxplot(k1~k2)
k2=rep(c("a","b","c","d",each=c(4,3))
       c(rep("a",4),rep("b",3))
  tmp=sort(log_rank_p[log_rank_p<0.05]) #嵌套式代码先运行最小括号内容

引用自生信技能树

0 人点赞