我正在尝试合并我拥有的两个数据帧,另一个是1到6(A)的数字长列表,另一个是数字1到6的数字,并且每个数字都标记为(B)。 如何将B合并到A,以便A中的数字列表在B中具有相应数字的名称?
祝你好运, Hlynur T
答案 0 :(得分: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")
(过去曾经多次询问并回答过这个问题。)
答案 1 :(得分:1)
使用match()。假设您有以下两个数据框:
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()而不是为名称创建一个列,事情就会略有改变,但这种一般结构应该只需要一些调整就可以了。不管具体细节如何。