比较数据框中多行中的两列
我正在使用一个数据框,我想在其中将数据点 Genotype
与两个引用 S288C
和 SK1
进行比较。此比较将在数据帧的许多行(100+)中进行。以下是我的数据框的前几行:
Assay Genotype S288C SK1
1 CCT6-002 G A G
2 CCT6-007 G A G
3 CCT6-013 C T C
4 CCT6-015 G A G
5 CCT6-016 G G T
作为最终产品,我想要一个由 1 (S288C
) 和 0 (SK1
) 组成的字符串,具体取决于哪个数据点匹配的参考文献。因此,在上面的示例中,我希望输出 00001
,因为除了最后一个匹配 SK1
之外的所有输出。
I have a data frame that I'm working with in which I'd like to compare a data point Genotype
with two references S288C
and SK1
. This comparison will be done across many rows (100+) of the data frame. Here are the first few lines of my data frame:
Assay Genotype S288C SK1
1 CCT6-002 G A G
2 CCT6-007 G A G
3 CCT6-013 C T C
4 CCT6-015 G A G
5 CCT6-016 G G T
As a final product, I'd like a character string of 1's (S288C
) and 0's (SK1
) depending on which of the references the data point matches. Thus in the example above I'd like an output of 00001
since all except the last match SK1
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嵌套的
ifelse
应该可以做到这一点(查看help(ifelse)
的用法):通过此测试数据:
我们得到:(
注意: 如果您在使用此功能时遇到困难,您需要确保列是向量,并且不会被 R 视为因子...一个简单的 for 循环应该可以做到这一点:
for (i in 1:ncol(dat)){dat[,i]=as.vector(dat[,i])}
)。A nested
ifelse
should do it (take a look athelp(ifelse)
for usage):With this test data:
We get:
(Note: If you have trouble using this, you'll want to make sure that the columns are vectors, and are not treated by R as factors...a simple for loop should do it:
for (i in 1:ncol(dat)){dat[,i]=as.vector(dat[,i])}
).