R使用第三个表重命名列

R使用第三个表重命名列,r,foreign-keys,multiple-columns,rename,R,Foreign Keys,Multiple Columns,Rename,我的问题是: 我有3张桌子:2张带obs。和变量。 这两个表的变量名称不同,但描述的内容相同。因此,我想重命名一个表中的变量,然后将它们合并在一起,而不使变量数量翻倍。 第三个表是一个包含两个变量名称的表,始终是一行中的两个匹配项 如何使用表#3重命名表变量? 或者我可以使用表3直接加入/合并它们让我看看是否有这个。您有两个数据帧;称它们为df1和df2: df1 <- data.frame( one = 1:10, two = 1:10, three =

我的问题是: 我有3张桌子:2张带obs。和变量。 这两个表的变量名称不同,但描述的内容相同。因此,我想重命名一个表中的变量,然后将它们合并在一起,而不使变量数量翻倍。 第三个表是一个包含两个变量名称的表,始终是一行中的两个匹配项

如何使用表#3重命名表变量?
或者我可以使用表3直接加入/合并它们让我看看是否有这个。您有两个数据帧;称它们为
df1
df2

df1 <- data.frame(
    one   = 1:10,
    two   = 1:10,
    three = 1:10
)

df2 <- data.frame(
    third  = 1:10,
    second = 1:10,
    first  = 1:10
)

现在假设
df2
有一个额外的列(“forth”),您希望保留该列,但该列未在
dfnames
中列出:

df2 <- data.frame(
    fourth = 1:10,
    third  = 1:10,
    second = 1:10,
    first  = 1:10
)

df2这读起来像是“玛丽有4个姐妹,简比珍妮的一半年龄小5岁”。你能提供表格和预期产出吗?是的,你知道了。您的回答有效,但df中有一些列与df名称df没有关联。那些名字现在不见了。我怎样才能保存它们呢?首先请看我添加的内容。谢谢!不幸的是,它仍然不起作用。现在额外的列将保留,但匹配列的名称更改为一些数字,而不是新名称。欢迎您给我发送电子邮件(请参阅我的个人资料页)。包括您的数据,如有必要,还包括对预期输出的简要描述,我会看看是否可以让代码为您工作。
names(df2) <- dfnames$a[match(names(df2), dfnames$b)]
df2 <- data.frame(
    fourth = 1:10,
    third  = 1:10,
    second = 1:10,
    first  = 1:10
)
newnames <- dfnames$a[match(names(df2), dfnames$b)]
names(df2) <- ifelse(is.na(newnames), names(df2), newnames)