0

我正在尝试合并我拥有的两个数据框,另一个是从 1 到 6 (A) 的一长串数字,另一个是具有数字 1 到 6 的向量并为每个数字命名 (B)。如何将 B 合并到 A 以便 A 中的数字列表将具有 B 中相应数字的名称?

最好的问候, Hlynur T

4

2 回答 2

2

如果这复制了您的情况,那么merge答案是:

 dfB <- data.frame(numb = 1:6, nams = LETTERS[1:6])
 dfA <- data.frame(nums = sample(1:6, 30, repl=TRUE))
 merge(dfA, dfB, by.x="nums", by.y="numb")

(过去这个问题已经被问过很多次了。)

于 2012-12-26T18:32:06.477 回答
1

使用匹配()。假设您有以下两个数据框:

A <- data.frame(num=sample(1:6,100,replace=TRUE))
B <- data.frame(num=1:6,myname=letters[1:6])

然后为数据框 A 创建一个新列“myname”:

A[,'myname'] <- B[match(A[,'num'],B[,'num']),'myname']

正如其他人所提到的,如果您使用 rownames() 而不是为名称创建列,情况会发生轻微变化,但是无论具体情况如何,这种一般构造都应该进行一些调整。

于 2012-12-26T18:23:25.890 回答