日常记录:R语言的一些计算和应用

2017-12-26  本文已影响0人  bio_橡树

1.把数据框按某列排序
2.对向量排序
3.对向量排序并取出累加和在前90%的元素
4.处理数据并绘制散点图(ggplot2,数据过滤)
5.合并两个向量,去重,计数
6.merge函数,按指定列合并数据框
7.统计向量中元素的频次table()

  1. 把数据框按列A逆向排序
data[order(-data$A),]
  1. 对向量a逆向排序
sort(x,decreasing=T)
  1. 对向量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])
  1. 处理数据并绘制散点图


    数据格式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)

  1. 合并两个向量并去重复,计数
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
  1. 统计向量中元素的频次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
上一篇 下一篇

猜你喜欢

热点阅读