如何测试列值的相等性并在新列中设置值

时间:2017-05-10 15:36:53

标签: r

前言:我习惯了熊猫,但我是R的新手。我相信这个问题涵盖了非常基本的R.我有一个小小的想法,我甚至不确定要搜索什么这很可能是重复的 - 请让我知道,我很乐意删除并找到答案。

我知道旁边没有"你在这里试过了什么"。如果您甚至能够指出我的某些文档,我将删除它并继续阅读。

非常感谢你的帮助:)。

我有两个数据帧:

key=  
letter id
A      0
B      1
C      2

data=
name value
A     24
C     46
B     36
C      5

我想编写一个匹配并找到data$name == key$letter的函数,并在key$id的新列中的data中返回相应的值。

输出数据框看起来如此:

data
name value id
A     24    0
C     46    2
B     36    1
C      5    2

基本上我想使用key作为参考数据框。

我可以使用np.where apply matchloc在Python中轻松完成这项工作,但在R中,我不知道从哪里开始。

我已在which applyindex以及compare上阅读了以下问题,但我一直无法弄清楚如何撰写此声明。

Return indices of rows whose elements (columns) all match a reference vector Finding the index inside a vector satisfying a condition How to find the indices of an R list meeting multiple criteria Is there an R function for finding the index of an element in a vector? Compare two data.frames to find the rows in data.frame 1 that are not present in data.frame 2

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

tt <- match(data$name, key$letter)
data$id <- key$id[tt]