在R中操作特定的行

在R中,如需删除特定的行或对其赋值,可以使用which()查找行号,再根据行号进行操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 现在,我们的数据是基因组中基因的位置,如下:
> head(hg19)
V1 V2 V3 V4
1 chr1 66999275 67216822 SGIP1
5 chr1 8378144 8404227 SLC45A1
6 chr1 16767166 16786585 NECAP2
9 chr1 25071937 25170812 CLIC4
10 chr1 33546753 33589093 AZIN2
24 chr1 48998525 50489626 AGBL4

> dim(hg19)
28165 4 # 共28165行
# 若我们对基因位置进行扩展,由于有些基因坐标太靠近染色体起始位置,会出现负数,这会导致后面的操作出错
> hg19$V2 <- hg19$V2 - 5000
> hg19$V3 <- hg19$V3 + 5000
> head(hg19)
V1 V2 V3 V4
1 chr1 66994275 67221822 SGIP1
5 chr1 8373144 8409227 SLC45A1
6 chr1 16762166 16791585 NECAP2
9 chr1 25066937 25175812 CLIC4
10 chr1 33541753 33594093 AZIN2
24 chr1 48993525 50494626 AGBL4
# 可以通过which()查找行号
> which(hg19$V2 < 0)
# 22802 28048 28049
# 查看一下
> hg19[c(22802,28048,28049),]
V1 V2 V3 V4
57944 chr17 -4934 36441 DOC2B
70402 chrMT -1694 9262 ND1
70403 chrMT -531 10511 ND2
# 再将对应的行删除或者进行赋值
> hg19[c(22802,28048,28049),]$V2 <- 0
> hg19[c(22802,28048,28049),]
V1 V2 V3 V4
57944 chr17 0 36441 DOC2B
70402 chrMT 0 9262 ND1
70403 chrMT 0 10511 ND2
  • 本文作者:括囊无誉
  • 本文链接: R/deleteRows/
  • 版权声明: 本博客所有文章均为原创作品,转载请注明出处!
------ 本文结束 ------
坚持原创文章分享,您的支持将鼓励我继续创作!