2013年1月3日星期四

R data.frame 操作例选



1.查看data.frame的开头
> head(df)
sequence start end 1 chromosome 1450 2112 2 chromosome 41063 41716 3 chromosome 62927 63640 4 chromosome 63881 64807 5 chromosome 71811 72701 2.选择data.frame特定的列
> df[,c('sequence','start','end')]
sequence start end 1 chromosome 1450 2112 2 chromosome 41063 41716 3 chromosome 62927 63640 4 chromosome 63881 64807 5 chromosome 71811 72701 ... 3.选择同时查看data.frame的列和行
> df[566:570,c('sequence','start','end')]
sequence start end 566 chromosome 480999 479860 567 chromosome 481397 480999 568 chromosome 503053 501275 569 chromosome 506476 505712 570 chromosome 515461 514277 4.SQL那样选择符合特定标准的行
df[df$value>3.0,]
sequence strand start end common_name value 199 chromosome + 907743 909506 hutU 3.158821 321 chromosome + 1391811 1393337 nadB 3.092771 556 chromosome - 431600 431037 apt 3.043373 572 chromosome - 519043 518186 hbd1 3.077040 5.选择包含特定内容的行列:找到tRNA
> df[grep("trna", df$common_name, ignore.case=T),]
sequence strand start end common_name value 18 chromosome + 115152 115224 Asn tRNA -0.461038128 19 chromosome + 115314 115422 Ile tRNA -0.925268307 31 chromosome + 167315 167388 Tyr tRNA 0.112527023 32 chromosome + 191112 191196 Ser tRNA 0.986357577 ... 6.复制行名称:行名成不仅在data.frame中使用,在矩阵中同样适用。 我们创建一个矩阵: > a = matrix(1:18, nrow=6, ncol=3) > rownames(a) <- c('a', 'a', 'a', 'b', 'b', 'b') > colnames(a) <- c('foo', 'bar', 'bat') > a foo bar bat a 1 7 13 a 2 8 14 a 3 9 15 b 4 10 16 b 5 11 17 b 6 12 18 如果我们只按照行名称选择查看的话,R反馈回来的只有符合该名称的第一行 > a['a',] foo bar bat 1 7 13 > a['b',] foo bar bat 4 10 16 但如果这样查询就能查看所有符合行名称的内容 > a[rownames(a)=='a',] foo bar bat a 1 7 13 a 2 8 14 a 3 9 15

没有评论:

发表评论