2017-03-11 113 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)]