我有以下类似于名为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
Run Code Online (Sandbox Code Playgroud)
此外,我列出了选定的符号,这些符号存储在另一个名为duplicate的制表符分隔文本文件中
Symbol Description
K Intel
P Diary
C Cape
S Sheath
A Aim
Run Code Online (Sandbox Code Playgroud)
我想从原始文件中提取具有相同符号的副本的行.我希望我的输出如下:
Name Symbol Value
abcd A 56
de45 C 67
k9ug K 43
prex P 21
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码,但有些我怎么也得不到任何结果或只有A行.这是我用过的代码
result <- original[original$Symbol %in% duplicate$Symbol,]
Run Code Online (Sandbox Code Playgroud)
有谁可以帮助我.
这可以通过简单的方式完成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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
当然,你必须拼写original正确,你没有!
names(original)显示为大写S(Symbol).names(duplicate)显示为小写s(symbol).如果两者都是大写的,那么您可以使用以下任一解决方案:
merge(original, duplicate)
original[original$Symbol %in% duplicate$Symbol, ]
Run Code Online (Sandbox Code Playgroud)