【发布时间】:2015-06-19 03:24:16
【问题描述】:
我有一个如下的数据框:
chr leftPos ZScore1 ZScore2 ZScore3 ZScore4
1 24352 34 43 19 43
1 53534 2 1 -1 -9
2 34 -15 7 -9 -18
3 3443 -100 -4 4 -9
3 3445 -100 -1 6 -1
3 3667 5 -5 9 5
3 7882 -8 -9 1 3
我只想保留那些具有相同 chr 并且具有相邻列且 ZScore 朝着相同方向的行。换句话说,如果该 chr 之前或之后的行具有相同的符号(正或负),则应该保留一行。我希望对列名中带有 ZS 的所有列运行此操作,以便输出最终只是满足每行条件的行数。
对于一列,代码应导致:
chr leftPos ZScore
1 24352 34
1 53534 2
3 3443 -100
3 3445 -100
但最终的输出应该是这样的
ZScore1 ZScore2 ZScore3 ZScore4
nrow 4 6 4 4
I have tried bits of code but Im not even really sure how to approach this.
我想我会按 chr 分组,然后查看上面的行是否与当前行相同或相同,然后查看下面的行是否与当前行的方向相同。然后移动到该字符的下一行。
【问题讨论】:
-
是的。这是故意的
-
你刚才说这是故意的,那么为什么
ZScore2有七行? -
因为每一行的上方或下方都有相同符号的行
-
我猜
ZScore2应该是 6 行,ZScore1应该是 4 行 -
但是你是通过
chr来做的,当chr == 2时它只有一行...
标签: r