生信R语言基础【3】

课程的设计形式Rproject,Rdata

R语言里面的数据,在最终结果之前不要频繁写出去,读进来,

使用用Rdata,save保存,load加载

cancergene <- c("TP53","ERBB2","BRCA1")

b <- c("zhangsan","lisi","wangermazi")

保存使用save, 可以同时保存多个数据

save(cancergene,b,file = "twoinone.Rdata")

清空环境

rm(list = ls())

加载已有数据使用load

load(file = "twoinone.Rdata")

###############################

加载练习数据

load(file = "data/01_TCGA_BRCA_exprSet.Rdata")

###################################################

数据太大的时候,最直观test——获取前10行,前10列

test <- exprSet[1:10,1:10]

view(test)

##############################

学习数据选取(三种思维模式)

第1,通过位置获取

获取第一行

test[1,]

获取第1列

test[,1]

使用$获取列

test$subgroup

选取第2到4行

test[2:4,]

选取第2到4列

test[,2:4]

选取第2到4行,3到5列

test[2:4,3:5]

########################

第2,通过行名和列名获取

########################

其中行名获取的方法十分推荐

但是记住一点, 行名不能重复,且必须保证行名是character

index <- c("TCGA-BH-A1FL-01A-11R-A13Q-07","TCGA-E2-A106-01A-11R-A10J-07", "TCGA-A2-A4S3-01A-21R-A266-07", "TCGA-AR-A2LL-01A-11R-A180-07", "TCGA-E9-A3Q9-01A-11R-A21T-07")

用名称提取行

myrows <- exprSet[index,]

用名称提取列

mycols <- exprSet[,c("subgroup","sample","SAMD11")]

用名称同时提取行和列

mydata <- exprSet[index,c("subgroup","sample","SAMD11")]

########################

第3,还可以通过逻辑获取

########################

逻辑获取,先产生逻辑值

exprSet$subgroup == "Normal"(exprSet中选取subgroup这一列与"Normal"相比,产生T or F)

index <- exprSet$subgroup == "Normal"(保存逻辑值到index)

head(index)(查看前6个值)

逻辑常用于提取行

mydata = exprSet[index,]

mydata = exprSet[exprSet$subgroup == "Normal",]

view(mydata )

在此基础上可以再选择列

mydata1 = exprSet[index,c(1:5)](既用位置,又用逻辑)

有多少种方法可以产生逻辑值??

1.最重要的逻辑判断,如比较大小

2.函数产生,比如grepl,%in%

###################################

行列的选择,还有一个重要的函数subset

subset,第一个位置是数据,第二个位置是从数据里选行(逻辑值),第三个位置是从数据里列,名称

mydata2 <- subset(exprSet,exprSet$subgroup == "Normal",select = c("subgroup","sample","SAMD11"))

mydata3 <- subset(exprSet,exprSet$subgroup == "Normal",select = c(1:2000))

总共1000列(图片左下角),选1-2000列会报错

####################################

mydata <- exprSet[1:10,1:10]

删除列和增加列

删掉第一列

mydata1 <- mydata[,-1]

增加一列(列名和值),一般新增列默认放到最后一列

mydata1$subgroup <- LETTERS[1:10]

view(mydata1)

使用位置调整顺序,

把最后一列调整到第1列,很常用

mydata2 <- mydata1[,c(10,1,2,3,4,5,6,7,8,9)]

mydata3 <- mydata1[,c(10,seq(1,9))]

修改部分名称

colnames(test)[3:5] <- c("GeneA","GeneB","GeneC")

rownames(test)[1:2] <- c("sampleA","sampleB")

复习:

data.frame,

colnames,

rownames,

[],

$,

save(),

load()

subset

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巫嘎嘎

坚持不易,求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值