1.把数据框按某列排序
2.对向量排序
3.对向量排序并取出累加和在前90%的元素
4.处理数据并绘制散点图(ggplot2,数据过滤)
5.合并两个向量,去重,计数
6.merge函数,按指定列合并数据框
7.统计向量中元素的频次table()
- 把数据框按列A逆向排序
data[order(-data$A),]
- 对向量a逆向排序
sort(x,decreasing=T)
- 对向量x逆向排序并取出累加和在前90%的元素
x=sort(x,decreasing=T) #对向量排序
k=""
for (i in 1:length(x)){
if (sum(x[1:i])>0.9*sum(x)){
print (i) ##从大往小累加,到第i个元素和>0.9*sum
k=i
break
}
}
sum(x[1:k])
-
处理数据并绘制散点图
数据格式data
data1<-data[data$R7111062+data$R7111063!=0,1:3] ##过滤掉R7111062和R7111063都为0的行
data1<-data1[order(-data1$R7111062),] ##把数据框按R7111062这一列逆向排序
head(data1)
library(reshape2)
data1<-melt(data1) ##数据变形,宽数据变长数据
png("R7111062vsR7111063.png",width=800,height=1000)
ggplot(data1, aes(x=data1$CDR3, y=data1$value, colour=variable)) + geom_point()
+labs(x="CDR3",y="Count",title = "R7111062vsR7111063") ##labs可以修改各种坐标轴标题和title
dev.off()
![Z@43X9A1]~Y{R3()$B63P`S.png](https://img.haomeiwen.com/i9305347/eae903a754036d34.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 合并两个向量并去重复,计数
a<-c(1,2,3)
b<-c(2,3,4)
a+b 结果为(3,5,7)
c<-c(a,b) 结果为(1,2,3,2,3,4)
length(unique(c))
6.merge函数,按指定列合并数据框
merge(x, y ,by.x = ,by.y = ,all= ) #all.x=TRUE, all.y=TRUE , all=TRUE, by=" "
data1<-data.frame(A=c("a","b","c","d"),B=c(1,2,3,4))
A B
1 a 1
2 b 2
3 c 3
4 d 4
data2<-data.frame(A=c("c","d","e","f"),C=c(10,20,30,40))
A C
1 c 10
2 d 20
3 e 30
4 f 40
merge(data1,data2,by="A")
A B C
1 c 3 10
2 d 4 20
- 统计向量中元素的频次table()
A<-c(rep("a",3),rep("b",2),rep("c",5))
A: "a" "a" "a" "b" "b" "c" "c" "c" "c" "c"
table(A)
A
a b c
3 2 5
as.data.frame(table(A))
A Freq
1 a 3
2 b 2
3 c 5
网友评论