根据其他数据框值[R]从一列数据框更改值

时间:2018-10-25 14:11:37

标签: r dataframe

我有以下两个数据框。

我的第一个DF是这样的,我是DDBB,在每个ISIN值中只有一个出现。

 ISIN inst inst_type type
    asd    1    2     ETF
    asb    2    b     Bond
    bcd    3    c     Bond

我的第二个DF是下一个,

    ISIN inst inst_type type
    asd    1      2      ""
    asd    1      2      ""
    bcd    3      c      ""
    bcd    3      c      ""
    bcd    3      c      ""
    asb    2      b      ""

例如,我想在第一个DF的基础上填充第二个数据框“类型”列。 在我的ISIN的第一个DF中,“ asd”类型是“ ETF”,所以我的第二个ETF应该是这样。

 ISIN inst inst_type type
    asd    1      2      ETF
    asd    1      2      ETF
    bcd    3      c      ""
    bcd    3      c      ""
    bcd    3      c      ""
    asb    2      b      ""

我可以使用for循环来做到这一点,但是我的问题是,如果我有一个具有40万行的Df,那不是一种有效的方法。

有什么想法如何更有效地解决它?

1 个答案:

答案 0 :(得分:0)

您可以使用for循环,但是在不同的ISIN中而不是在行中循环,这样会更有效。像这样:

factors <- unique(df1$ISIN)
for(i in factors){
  df2$type[df2$ISIN==i] <- df1$type[df1$ISIN==i][1]
}