我正试图找到一种方法来编写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%
我想根据Table1中的公司名称比较Table2,并生成一个只有匹配名称的Table3
输出表3
Company Growth-Dept2
A 2%
C 2%
D 8%
在这种情况下我需要使用循环吗? 有没有其他方式来编程呢?我在每列中有大约800个条目
答案 0 :(得分: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
答案 1 :(得分:0)
使用data.table
和scales
百分比。
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)]