【发布时间】:2015-07-06 07:52:32
【问题描述】:
假设我有这样的数据集
`v6 v7 v8 v9
x 123 123 x
x 123 456 x
x 789 789 x
x 123 789 x `
如何过滤,以便只提取第 7 列和第 8 列的值彼此相等的行,仍然在过滤后保留列的标题?我试过这段代码:
hg19 -> hg19[which(hg19$V7 == hg19$V8),]
还有这段代码:
non_coding= subset(hg19,hg19[8] == hg19[7])
其中 hg19 是数据集。 注意:真实数据集有超过 99,000 行和 16 列
【问题讨论】:
-
与列名匹配。
hg19[hg19$v7 == hg19$v8,]。您使用的是V7和V8而不是v7和v8。在第二个代码中,它对示例中不存在的8th和7th列进行了子集化(因为它只有 4 列数据集。 -
我已经编辑了原始帖子,但实际数据集有超过 99,000 行和 16 列。两个代码都按照我的要求做了,但他们没有保留列标题,这将使以后的数据难以处理
-
为什么你的赋值箭头指向右边?
-
另外,您的示例列名具有小写 v,但测试使用大写 V。 R 区分大小写。
-
您到底是什么意思“在过滤后仍然保留列的标题”?你能用你的例子给我们预期的结果吗?使用到目前为止提供的解决方案,过滤后似乎保留了 v6 和 v8。你需要什么?