2017-03-11 77 views
0

我试图找到一种方式来编程中的R以下基于R中

我有一个数据帧中,我将整理基础上,增长率最低的表中的列比较两个数据帧一组公司

表1

Company Growth-Dept1 
    A  5% 
    B  10% 
    C  15% 
    D  20% 

表2

Company Growth-Dept2  
    A   2% 
    M   4% 
    D   8% 
    C   2% 

我要合作mpare表2根据表1中的公司名称和生成表3,只有具有匹配名称

输出表3

Company Growth-Dept2 
    A  2% 
    C  2% 
    D  8% 

我需要在这种情况下使用循环? 任何其他方式来编程?我在每列中有大约800个条目

回答

0

这是怎么回事?

t1 <- data.frame(company=c('A','B','C','D'),growth=c(.05,.1,.15,.2)) 
t2 <- data.frame(company=c('A','M','D','C'),growth=c(.02,.04,.08,.02)) 
tcombined <- t2[which(t1$company %in% t2$company),] 
tcombined <- tcombined[order(tcombined$growth),] 
tcombined 

company growth 
1  A 0.02 
4  C 0.02 
3  D 0.08 
+0

确实有这些解决方案的工作?如果是这样,请考虑接受答案。 – Jonathan

0

使用data.tablescales百分比一起。

library(data.table) 
library(scales) 

dt1 <- data.table(Company=c('A','B','C','D'),growth_dep1=percent(c(.05,.1,.15,.2)), key = "Company") 
dt2 <- data.table(Company=c('A','M','D','C'),growth_dep2=percent(c(.02,.04,.08,.02)), key = "Company") 

dt1[dt2][!is.na(growth_dep1), .(Company, growth_dep2)][order(growth_dep2)]