在R中:尝试确定数据集中重复ID号的原点位置

时间:2013-12-17 00:43:26

标签: r reshape

提前感谢您花时间阅读本文。我刚刚开始学习没有编程背景的R,所以即使你可以帮助我为我正在尝试执行的分析或功能命名,这样我就可以有效地寻找其他资源,我将非常感激:

我试图查看从特定网站发布的动物是否已移出其释放位置。我在网站内有4个发布网站和20多个横断面。 “RECAP1”表示在横断面上捕获的唯一ID号,对应于特定的原始发布站点,“RUW”和“RLW”是两个原始发布站点。

下面我提供了我正在使用的集合的示例,我在“RECAP1”的第一行中使用了ID#,它与“RUW”的最后一行中的数字匹配(我第一次使用dput( )功能,如果我悲惨地辱骂那么道歉):

structure(list(RUW = structure(c(4L, 5L, 3L, 2L, 1L, 6L), .Label = c("3D9.1C2DB5FC90", 
"3D9.1C2DB62A80", "3D9.1C2DB66C91", "3D9.1C2DB67255", "3D9.1C2DB67A27", 
"3D9.1C2DBF8F56"), class = "factor"), RLW = structure(c(3L, 4L, 
6L, 1L, 2L, 5L), .Label = c("3D9.1C2D859450", "3D9.1C2DBAA68F", 
"3D9.1C2DBE338A", "3D9.1C2DBE7B85", "3D9.1C2DBF15B8", "3D9.1C2DBF756E"
), class = "factor"), RECAP1 = structure(c(4L, 2L, 3L, 1L, 1L, 
1L), .Label = c("", "3D9.1C2DB5FF58", "3D9.1C2DB61CDC", "3D9.1C2DBF8F56"
), class = "factor")), .Names = c("RUW", "RLW", "RECAP1"), class = "data.frame", row.names = c(NA, 
-6L))

我想要实现的是列表/列表输出,它告诉我重复的ID号来自哪个列(按名称)。

这是我正在寻找什么样的输出的例子:

         DETECTION          RECAP SITE         ORIGIN SITE
1   3D9.1C2DBF8F56     RECAP1             RUW
2   3D9.1C2DBF33H4     RECAP17            RLW
3   3D9.1C2DF4BE93     RECAP6             RLM

1 个答案:

答案 0 :(得分:0)

我认为这就是你要做的。基本上,对于每个RECAP1值,您想知道它是否出现在RUWRLW中?

library(reshape2)
df2 <- melt(
  df, 
  id.vars = 'RECAP1'
  )
df2[df2$RECAP1 %in% df2$value,1:2]

输出 -

> df2[df2$RECAP1 %in% df2$value,1:2]
          RECAP1 variable
1 3D9.1C2DBF8F56      RUW
7 3D9.1C2DBF8F56      RLW

如果我误解了,你能否将你的样本输入和样本输出与你想要完成的过程联系起来?