0

我在名为original的制表符分隔的文本文件中有以下类似数据

Name     Symbol       Value
abcd       A            56   
de45       C            67
ji98       H            90
k9ug       K            43
phzt       L            98
prex       P            21
kadf       T            32

我也有存储在另一个名为重复的制表符分隔的文本文件中的选定符号列表

Symbol     Description
 K            Intel
 P            Diary
 C            Cape
 S            Sheath
 A            Aim

我想从具有相同 Symbol 和duplicate的原始文件中提取行。我希望我的输出如下:

Name     Symbol       Value
abcd       A            56   
de45       C            67
k9ug       K            43
prex       P            21

我尝试使用以下代码,但有些我无法获得任何结果或只有A行。这是我使用过的代码

result <- original[original$Symbol %in% duplicate$Symbol,]

谁能帮帮我。

4

1 回答 1

8

这可以通过简单的方式完成merge

merge(original, duplicate, by.x="Symbol", by.y="symbol")
#   Symbol Name Value Description
# 1      A abcd    56         Aim
# 2      C de45    67        Cape
# 3      K k9ug    43       Intel
# 4      P prex    21       Diary

Description如果不相关,您可以在合并之前或之后手动删除列。

另外,我不知道这是发布的问题的问题,还是您的代码有问题,但是:

original[original$Symbol %in% duplicate$symbol, ]
#   Name Symbol Value
# 1 abcd      A    56
# 2 de45      C    67
# 4 k9ug      K    43
# 6 prex      P    21

当然,您必须original正确拼写,而您没有!

假设

  1. 单词“symbol”的正确大小写names(original)显示为大写的 S ( Symbol)。
  2. 单词“symbol”的正确大小写names(duplicate)以小写的 s ( symbol) 显示。

如果两者都大写,那么您可以使用以下任一解决方案:

merge(original, duplicate)
original[original$Symbol %in% duplicate$Symbol, ]
于 2012-09-10T10:02:55.157 回答