我遇到了与两个数据框中的数据匹配的问题。我有一个数据框架与股票价格和另一个与公司收入。但是,两个数据框架中的公司并不完全相同。这是我正在处理的一个可重复的例子:
AAPL <- c(50,55,75,40,60)
MSFT <- c(80,65,70,75,80)
GE <- c(20,25,30,25,35)
Prices <- data.frame(AAPL,MSFT,GE)
AAPL <- c(100,110,120,110,100)
MSFT <- c(200,185,195,170,180)
PFE <- c(80,70,80,75,75)
Revenues <- data.frame(AAPL,MSFT,PFE)
我希望在两个数据框架中为公司的价格/收入比率设置一个新数据框。它看起来像这样。
AAPL.ps <- c(0.5,0.5,0.625,0.364, 0.6)
MSFT.ps <- c(0.4,0.351,0.359,0.441,0.444)
price.sales <- data.frame (AAPL.ps,MSFT.ps)
我是R的新人,并且一直在努力解决这个问题。
有关如何做到这一点的任何见解?
提前谢谢
答案 0 :(得分:3)
你可以这样做......
common <- intersect(names(Prices),names(Revenues)) #common column names
price.sales <- Prices[,common]/Revenues[,common] #just use those columns
price.sales
AAPL MSFT
1 0.5000000 0.4000000
2 0.5000000 0.3513514
3 0.6250000 0.3589744
4 0.3636364 0.4411765
5 0.6000000 0.4444444