#apply(X, MARGIN, FUN, …)
#其中X是数据框/矩阵名(变量名称);
#MARGIN为1表示行,为2表示列,FUN是函数
rm(list = ls())
test<- iris[1:6,1:4]
apply(test, 2, mean) #对test每一列求平均值
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 4.9500000 3.3833333 1.4500000 0.2333333
apply(test, 1, sum) #对test每一行求和
## 1 2 3 4 5 6
## 10.2 9.5 9.4 9.4 10.2 11.4
lapply(1:4,rnorm)
## [[1]]
## [1] -0.6585207
##
## [[2]]
## [1] -1.794612 -1.093297
##
## [[3]]
## [1] 0.2860504 0.6618459 1.2400498
##
## [[4]]
## [1] 0.71096165 -1.21823103 0.30138537 -0.08748238
test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'),
blood_type = c("A","B","O","AB"))
test1
## name blood_type
## 1 jimmy A
## 2 nicker B
## 3 Damon O
## 4 Sophie AB
test2 <- data.frame(name = c('Damon','jimmy','nicker','tony'),
group = c("group1","group1","group2","group2"),
vision = c(4.2,4.3,4.9,4.5))
test2
## name group vision
## 1 Damon group1 4.2
## 2 jimmy group1 4.3
## 3 nicker group2 4.9
## 4 tony group2 4.5
library(dplyr)
inner_join(test1,test2,by="name") #取交集
## name blood_type group vision
## 1 jimmy A group1 4.3
## 2 nicker B group2 4.9
## 3 Damon O group1 4.2
left_join(test1,test2,by="name") #左连接
## name blood_type group vision
## 1 jimmy A group1 4.3
## 2 nicker B group2 4.9
## 3 Damon O group1 4.2
## 4 Sophie AB <NA> NA
right_join(test1,test2,by="name")
## name blood_type group vision
## 1 jimmy A group1 4.3
## 2 nicker B group2 4.9
## 3 Damon O group1 4.2
## 4 tony <NA> group2 4.5
full_join(test1,test2,by="name") #全连接
## name blood_type group vision
## 1 jimmy A group1 4.3
## 2 nicker B group2 4.9
## 3 Damon O group1 4.2
## 4 Sophie AB <NA> NA
## 5 tony <NA> group2 4.5
# 表达矩阵
set.seed(10086)
exp = matrix(rnorm(18),ncol = 6)
exp = round(exp,2) #截取留下小数点后两位
rownames(exp) = paste0("gene",1:3)
colnames(exp) = paste0("test",1:6)
exp[,1:3] = exp[,1:3]+1 #一至三列数字在原来的基础上+1
exp
## test1 test2 test3 test4 test5 test6
## gene1 1.55 1.49 1.80 -0.37 -1.82 -1.62
## gene2 -1.74 0.37 2.08 2.11 -0.22 1.42
## gene3 1.57 1.25 1.32 2.49 0.58 -0.81
library(tidyr)
library(tibble)
library(dplyr)
dat = t(exp) %>%
as.data.frame() %>%
rownames_to_column() %>%
mutate(group = rep(c("control","treat"),each = 3))
pdat = dat%>%
pivot_longer(cols = starts_with("gene"),#哪些列合并为一列
names_to = "gene", #原来的列名改为新的列名
values_to = "count") #新的一列取值
#宽边长
library(ggplot2)
p = ggplot(pdat,aes(gene,count))+
geom_boxplot(aes(fill = group))+
theme_bw()
p
1.文件没有放到工作目录或工作目录有问题(有中文)
2.函数名称写错了或者函数属于某一个包没有加载需要用到该函数的包
3.没有安装该包或依赖包
4.
(1)不是一个对象,前面没带引号
(2)是一个对象,没赋值
# 1.match-----
load("matchtest.Rdata")
x
## file_name
## 1 708a16a3-7a5e-4e27-b06b-4c3c308b11fe.htseq.counts.gz
## 2 95e726db-5ccc-4836-a2ae-7feaddaf9f1b.htseq.counts.gz
## 3 90a46dce-5762-47ec-925c-deff853069aa.htseq.counts.gz
## 4 587e44e4-87ba-4981-a520-d20612486f53.htseq.counts.gz
## 5 1b843dbb-5ef0-47ca-9783-dbeb94aa6df3.htseq.counts.gz
## 6 09796233-3f40-4deb-b77d-2267c3afff59.htseq.counts.gz
## 7 44f1dc34-a01e-4a7b-a7a1-a90064039fdd.htseq.counts.gz
## ID
## 1 TCGA-AA-3531-01A-01R-0821-07
## 2 TCGA-A6-2678-11A-01R-A32Z-07
## 3 TCGA-AA-A02K-01A-03R-A32Y-07
## 4 TCGA-NH-A6GA-01A-11R-A37K-07
## 5 TCGA-AZ-6600-11A-01R-1774-07
## 6 TCGA-CM-6676-01A-11R-1839-07
## 7 TCGA-AA-3971-01A-01R-1022-07
y
## 90a46dce-5762-47ec-925c-deff853069aa.htseq.counts.gz
## ENSG00000000003.13 6564
## ENSG00000000005.5 29
## ENSG00000000419.11 2659
## ENSG00000000457.12 246
## ENSG00000000460.15 145
## ENSG00000000938.11 37
## ENSG00000000971.14 77
## 587e44e4-87ba-4981-a520-d20612486f53.htseq.counts.gz
## ENSG00000000003.13 3127
## ENSG00000000005.5 0
## ENSG00000000419.11 889
## ENSG00000000457.12 382
## ENSG00000000460.15 188
## ENSG00000000938.11 749
## ENSG00000000971.14 708
## 95e726db-5ccc-4836-a2ae-7feaddaf9f1b.htseq.counts.gz
## ENSG00000000003.13 6330
## ENSG00000000005.5 0
## ENSG00000000419.11 2428
## ENSG00000000457.12 1701
## ENSG00000000460.15 1009
## ENSG00000000938.11 220
## ENSG00000000971.14 530
## 09796233-3f40-4deb-b77d-2267c3afff59.htseq.counts.gz
## ENSG00000000003.13 3583
## ENSG00000000005.5 70
## ENSG00000000419.11 1436
## ENSG00000000457.12 590
## ENSG00000000460.15 440
## ENSG00000000938.11 812
## ENSG00000000971.14 4173
## 708a16a3-7a5e-4e27-b06b-4c3c308b11fe.htseq.counts.gz
## ENSG00000000003.13 643
## ENSG00000000005.5 17
## ENSG00000000419.11 2476
## ENSG00000000457.12 804
## ENSG00000000460.15 496
## ENSG00000000938.11 962
## ENSG00000000971.14 3958
## 44f1dc34-a01e-4a7b-a7a1-a90064039fdd.htseq.counts.gz
## ENSG00000000003.13 1514
## ENSG00000000005.5 13
## ENSG00000000419.11 876
## ENSG00000000457.12 483
## ENSG00000000460.15 250
## ENSG00000000938.11 75
## ENSG00000000971.14 272
## 1b843dbb-5ef0-47ca-9783-dbeb94aa6df3.htseq.counts.gz
## ENSG00000000003.13 11751
## ENSG00000000005.5 26
## ENSG00000000419.11 2494
## ENSG00000000457.12 531
## ENSG00000000460.15 632
## ENSG00000000938.11 85
## ENSG00000000971.14 319
## (1)分步解法
a = colnames(y)
b = x$file_name
k = match(a,b);k
## [1] 3 4 2 6 1 7 5
#match(a,b)的意思是a里的每个元素在b的第几个位置上。
#是b的下标,可以给b取子集,也可以给与b对应的其他向量取子集。
colnames(y) = x$ID[k]
## (2)一步解法
load("matchtest.Rdata")
colnames(y) = x$ID[match(colnames(y),x$file_name)]
## (3)放弃match的解法
load("matchtest.Rdata")
rownames(x) = x$file_name
x = x[colnames(y),]
colnames(y) = x$ID
# 2.一些搞文件的函数----
dir() # 列出工作目录下的文件
## [1] "0_pre_install.R" "1_玩转字符串.R"
## [3] "2_玩转数据框.R" "3_条件和循环.R"
## [5] "4_隐式循环.R" "5_两个数据框的连接.R"
## [7] "6_表达矩阵画箱线图.R" "7_一些顶呱呱的函数.R"
## [9] "8_exercise.R" "9_anwser.R"
## [11] "day71.html" "day71.md"
## [13] "day71.Rmd" "day72.html"
## [15] "day72.md" "day72.Rmd"
## [17] "day73.md" "day73.Rmd"
## [19] "day74.html" "day74.md"
## [21] "day74.Rmd" "deg.Rdata"
## [23] "figure" "group.csv"
## [25] "matchtest.Rdata" "R_04.Rproj"
## [27] "test1.Rdata" "test2.Rdata"
## [29] "未命名.html" "未命名.Rmd"
dir(pattern = ".R$") #列出工作目录下以.R结尾的文件
## [1] "0_pre_install.R" "1_玩转字符串.R"
## [3] "2_玩转数据框.R" "3_条件和循环.R"
## [5] "4_隐式循环.R" "5_两个数据框的连接.R"
## [7] "6_表达矩阵画箱线图.R" "7_一些顶呱呱的函数.R"
## [9] "8_exercise.R" "9_anwser.R"
file.create("douhua.txt") #用代码创建文件
## [1] TRUE
file.exists("douhua.txt") #某文件在工作目录下是否存在
## [1] TRUE
file.remove("douhua.txt") #用代码删除文件
## [1] TRUE
file.exists("douhua.txt") #删掉了就不存在啦
## [1] FALSE
## 可以批量的新建和删除
f = paste0("douhua",1:100,".txt")
file.create(f)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [12] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [23] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [34] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [45] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [56] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [67] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [78] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [89] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [100] TRUE
file.remove(f)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [12] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [23] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [34] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [45] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [56] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [67] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [78] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [89] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [100] TRUE
引用自生信技能树课程
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。