用列表中的其他值替换数据帧值

时间:2017-05-15 17:10:08

标签: r

我有一个数据框:

col1,col2,
sth1,sth2,
sth2,sth1,
sth3,sth2

和一个列表,其中一列的值来自df,第二列的值与其他名称相同:

valuesdf,valuesnew
sth1,vn1
sth2,vn2
sth3,vn3

我想使用第二个数据帧中的相等值更改初始数据帧中的值,并得到以下结果:

col1,col2,
vn1,vn2,
vn2,vn1,
vn3,vn2

怎么可能成功呢?

1 个答案:

答案 0 :(得分:1)

我们可以通过循环第一个数据集('df1')的列和第二个'valuesdf'列来进行match,并使用该索引从'df2'获取相应的'valuesnew'

df1[] <- lapply(df1, function(x) df2$valuesnew[match(x, df2$valuesdf)])