我正在尝试合并我拥有的两个数据框,另一个是从 1 到 6 (A) 的一长串数字,另一个是具有数字 1 到 6 的向量并为每个数字命名 (B)。如何将 B 合并到 A 以便 A 中的数字列表将具有 B 中相应数字的名称?
最好的问候, Hlynur T
我正在尝试合并我拥有的两个数据框,另一个是从 1 到 6 (A) 的一长串数字,另一个是具有数字 1 到 6 的向量并为每个数字命名 (B)。如何将 B 合并到 A 以便 A 中的数字列表将具有 B 中相应数字的名称?
最好的问候, Hlynur T
如果这复制了您的情况,那么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")
(过去这个问题已经被问过很多次了。)
使用匹配()。假设您有以下两个数据框:
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() 而不是为名称创建列,情况会发生轻微变化,但是无论具体情况如何,这种一般构造都应该进行一些调整。