R:匹配数据帧x中的行名与数据帧y中的列名,用于两个数据帧共享的列中的给定变量值

时间:2017-05-18 16:09:42

标签: r dataframe merge

假设我有两个数据框,如下所示

> df1
        date firm1 firm2 firm3
1 01-01-2017     1     2    3
2 01-02-2017     4     5    6
3 01-03-2017     7     8    9

> df2
            date
firm1 01-02-2017
firm2 01-01-2017
firm3 01-03-2017

是否可以使用df1中的值提取新数据框,其中df1的列名和日期值与df2的行名和日期相匹配?

数据框架希望看起来像:

      Value
firm1     2
firm2     4
firm3     9

任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:2)

我们可以使用row/column索引来提取' df1'并创建一个data.frame

df3 <- data.frame(Value = df1[-1][cbind(1:nrow(df1), match(df2$date, df1$date))])
row.names(df3) <- row.names(df2)
df3
#      Value
#firm1     2
#firm2     4
#firm3     9

答案 1 :(得分:1)

# java -cp SendCommand.jar:commons-io-2.5.jar:json-simple-1.1.jar ExecuteShellComand