生成向量:当一个向量中的值与另一个向量匹配时,在R中的相同位置输入另一个向量的值

时间:2017-03-24 00:17:57

标签: r vector dataframe

我正在尝试根据另一个数据帧中的向量在R中的数据帧中创建一个新向量。

我有一个包含插座编号的数据框。另一个数据框(一致表)显示哪个插座名称对应哪个插座编号。使用索引表,我想在第一个数据帧中找到每个相关插座号的插座名称,并将它们作为新矢量放入第一个数据帧。

以下是我的数据示例

outlet <- rep(1:26)
outletname <- letters[1:26]
concordance <- data.frame(outlet, outletname)
df1 <- data.frame(outlet)

我要做的是,当df1$outlet == concordance$outletconcordance$outletname

的向量内的同一位置返回concordance$outlet的值时,向R说

有谁知道怎么做?非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

在您的示例中,数据df1$outlet在所有点都已等于concordance$outlet。我假设你想要一些有效的东西,即使这不是真的,所以让我们首先搜索数据以检查我们在所有情况下的作用:

set.seed(123)
df1 = df1[sample(1:nrow(df1)), , drop = FALSE]

然后您可以合并插座名称:

df1 = merge(df1, concordance, by="outlet", sort = FALSE)