数据框、矩阵、列表
matrix:只允许一种数据类型(有坑,见后)
data.frame:每列只允许一种数据类型
数据框属性
代码语言:text复制df1 <- data.frame(gene = paste0("gene",1:4),
change = rep(c("up","down"),each = 2),
score = c(5,3,-2,-4))
df1
## gene change score
## 1 gene1 up 5
## 2 gene2 up 3
## 3 gene3 down -2
## 4 gene4 down -4
#dimension
dim(df1)#行列
## [1] 4 3
nrow(df1)#返回数值,多少行
## [1] 4
ncol(df1)#返回数值,多少列
## [1] 3
#名
rownames(df1)#返回向量,行名
## [1] "1" "2" "3" "4"
colnames(df1)#返回向量,列名
## [1] "gene" "change" "score"
#修改数据框就是修改向量
#改行名和列名
rownames(df1) <- c("r1","r2","r3","r4")
#只修改某一行/列的名
colnames(df1)[2] <- "CHANGE"
数据框取子集
取子集的本质还是按位置或者按逻辑值
代码语言:text复制#筛选数值型
df1[df1$score > 0,]#取出df1中
#筛选test中,Species列的值为a或c的行
test[test$Species!="b",]
test[test$Species=="a"|test$Species=="c",]
test[test$Species %in% c("a","c"),]
矩阵不支持$
删除
代码语言:text复制#删除
rm(l)#删除一个
rm(df1,df2)#删除多个
rm(list = ls()) #清空
下载包
代码语言:text复制options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))#设置镜像
#1.CRAN的直接install
install.packages("tidyr")
#2.BiocManager的包要在它里面下
install.packages('BiocManager')
BiocManager::install("ggplot2")
#3.github的包要写作者
devtools::install_github("jmzeng1314/idmap1")
#最优解
if(!require(string))install.packages("stringr")
包是否下载成功的唯一标准是library()没有error,当提示package not available时,原因可能为:
1.名字写错;
2.安装命令错误;
3.包与R语言版本不符合(极少数);
4.包过时。
首先考虑原因1.2,多搜索多尝试
提示connection、download:网络问题
提示writable、permission:权限问题,管理员方式打开R
读取表格、fread函数
代码语言:text复制input <- read.csv("data/input.csv",header = T,row.names = 1,sep = ",")#sep:"," " " ";" "/t"
read.table()
library(data.table)
input <- fread("data/input.csv",header = T,row.names = 1,sep = ",")
Tips:
- 输出文件时不要覆盖原文件
- 需要用非proj的文件夹内的文件时,写全路径
- 多用tab
- fread函数读取快且遇空行不易出错
引用自生信技能树马拉松课程小洁老师R语言基础