数据挖掘第三天(数据结构)

2023-03-11 12:27:51 浏览数 (1)

矩阵只允许一种数据类型,数据框的每一列只允许一种数据类型

一、数据框来源

代码语言:txt复制
(1)用代码新建
代码语言:txt复制
(2)由已有数据转换或处理得到
代码语言:txt复制
(3)读取表格文件
代码语言:txt复制
(4)R语言内置数据

二、数据框取子集

代码语言:txt复制
用“$”符号,按列取子集
代码语言:txt复制
        df1 <- data.frame(gene   = paste0("gene",1:4),
代码语言:txt复制
       change  = rep(c("up","down"),each = 2),
代码语言:txt复制
           score   = c(5,3,-2,-4))
代码语言:txt复制
         df1
代码语言:txt复制
        gene change score
代码语言:txt复制
        1 gene1     up     5
代码语言:txt复制
        2 gene2     up     3
代码语言:txt复制
        3 gene3   down    -2
代码语言:txt复制
        4 gene4   down    -4
代码语言:txt复制
        df1$score
代码语言:txt复制
        [1]  5  3 -2 -4
代码语言:txt复制
按坐标取子集,用“【】”,括号里填写行列数,先行后列
代码语言:txt复制
        df1[2,2]#表示取第2行第2列
代码语言:txt复制
        [1] "up"
代码语言:txt复制
按逻辑值取,数据框按逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行/列丢掉
代码语言:txt复制
#筛选score > 0的行,筛选的是行,是score>0的行
代码语言:txt复制
df1$score  #先筛选df1数据框里score这一列
代码语言:txt复制
[1]  5  3 -2 -4
代码语言:txt复制
df1$score>0 #返回的是逻辑值
代码语言:txt复制
[1]  TRUE  TRUE FALSE FALSE
代码语言:txt复制
df1[df1$score > 0,] #中括号里表示score数值大于0的行,即TRUE的行。

gene change score

代码语言:txt复制
1 gene1     up     5
代码语言:txt复制
2 gene2     up     3
代码语言:txt复制
取数据框最后1列#数据框由N列,最后一列就是第N列
代码语言:txt复制
df1[,ncol(df1)]#最后一行用nrow代替
代码语言:txt复制
[1]  5  3 -2 -4,

数据框修改:取值 赋值

修改行名和列名,其实就是修改向量,要修改全部行名就给全部赋值,如果要改一个列名就给取子集赋值。如:修改第二列的列名,就是修改【列名这个向量】的第二个元素

代码语言:txt复制
rownames(df1) <- c("r1","r2","r3","r4")#修改行名

df1 gene change score p.value

r1 gene1 up 5 0.01

r2 gene2 up 3 0.02

r3 gene3 down -2 0.07

r4 gene4 down -4 0.05

colnames(df1)2 <- "CHANGE"#修改一个列名

df1 gene CHANGE score p.value

r1 gene1 up 5 0.01

r2 gene2 up 3 0.02

r3 gene3 down -2 0.07

r4 gene4 down -4 0.05

两个数据框连接

merge(test1,test2,by=)

数据框记忆卡数据框记忆卡
数据结构记忆卡数据结构记忆卡

0 人点赞