向量
用于存储数值、字符、逻辑型数据的一维数组。同一向量中无法混杂不同类型或模式的数据
c()可用来创建向量
代码语言:{r}复制c(1,2,3,4)
c("1","2","3","4")
c(TRUE,FALSE)
c(1:4)
1、2、3行分别生成数字、字符、逻辑型变量,“:”生成连续的数字
生成更复杂的向量
代码语言:{r}复制rep("x",times = 4)#重复
seq(from = 2,to = 16,by = 2)#参数名称可省,2到16间每2个数取一个
rnorm(n = 4)#随机取4个数
paste0(rep("x",times = 3),1:3)#两两组合,无间隔符
paste(rep("x",times = 3),1:3,sep=",")#两两组合,有间隔符,默认为空格
函数都有其默认值,? 函数名可查看帮助文档
为方便后续修改,能用函数代替,就不要手动去数
矩阵
二维数组,每个元素都有相同的类型
创建矩阵
代码语言:{r}复制y<-matrix(1:20,nrow = 5,ncol = 4,byrow=T)
生成一个矩阵,元素为1-20,大小5*4,byrow=T代表按行填充,默认按列
数据框
最常处理的数据结构
来源
(1)新建
(2)由已有数据转换或处理得到
(3)读取文件
(4)R语言内置数据
查看R语言内置数据
代码语言:{r}复制data() #列出已载入的包中的所有数据集
data(package =.packages(all.available = TRUE)) #列出已安装的包中的所有数据集
新建数据框
代码语言:{r}复制name<-c("A","B","C","D")
age<-rep(10,times=4)
grade<-c("good","poor","poor","good")
df<-data.frame(name,age,grade)
df
选取数据框中元素
代码语言:{r}复制df[1]#第一列
df$age
df[,c("age","name")]#按列名取
df[c(1,4),1:3]#1、4行,1到3列
修改数据框中元素
代码语言:{r}复制df[2,2] <- 11#改一个
df$grade<-c("good","good","good","good")#改一列
colnames(df)[2] <- "年龄"#改第二行行名,列名为rownames(df)
新建列
代码语言:{r}复制df$class <- c(2,2,3,4)#后接不存在的行名
两个数据框的连接
代码语言:{r}复制test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'),
blood_type = c("A","B","O","AB"))
test1
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
test3 <- data.frame(NAME = c('Damon','jimmy','nicker','tony'),
weight = c(140,145,110,138))
test3
merge(test1,test2,by="name")
merge(test1,test3,by.x = "name",by.y = "NAME")
原有两个数据框,新建一个数据框,根据相同的一列合并
筛选数据框中的数据
代码语言:{r}复制df$class[df$class>2]
引用自生信技能树,小洁老师