如何通过匹配多个观察来质量控制变量

问题描述 投票:0回答:1

我想要质量控制的数据框中有一个变量。该变量列出位置(字符)。我有另一个数据框,其中包含同一位置的所有备用名称。我想在数据框中的一个变量与单独的数据框中的所有备用名称之间是否存在匹配项时,得出true / false。有办法吗?

即我要对其进行质量控制的数据框中的变量称为FishingGround:

FishingGround

龙虾湾深湾鲸鱼头

然后我的另一个数据框在同一位置具有所有可能的不同名称。所以我想创建一个for循环,遍历我的FishingGround变量中的每个观察值,并检查它是否与列出的几个备用名称之一匹配。

r dataframe matching logical-operators
1个回答
0
投票

我喜欢将其用作查找表。您可以使用可接受的名称作为条目的names并只是查找它们。如果名称不在列表中,则结果为NA。示例:

FishingGround = c("Lobster Bay", "Deep Cove", "Whale Head")

AcceptableNames =  c("Lobster Bay", "Lobster Claw", 
    "Deep Cove", "Shallow Cove", "Whale Tail")
names(AcceptableNames) = AcceptableNames 

AcceptableNames[FishingGround]
  Lobster Bay     Deep Cove          <NA> 
"Lobster Bay"   "Deep Cove"            NA 

NA对应于不可接受的条目

## Unacceptable names
FishingGround[which(is.na(AcceptableNames[FishingGround]))]
[1] "Whale Head"

## Acceptable names
FishingGround[which(!is.na(AcceptableNames[FishingGround]))]
[1] "Lobster Bay" "Deep Cove"
© www.soinside.com 2019 - 2024. All rights reserved.