【问题标题】:Change value from one column Dataframe based on other dataframe value [R]根据其他数据框值 [R] 从一列数据框更改值
【发布时间】:2019-03-30 04:37:55
【问题描述】:

我有以下 2 个数据框。

我的第一个 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 'asd' 类型的第一个 DF 中是 '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 循环来做到这一点,但我的问题是,如果我有一个 400k 行的 Df,这不是一种有效的方法。

知道如何更有效地解决它吗?

【问题讨论】:

标签: r dataframe


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    相关资源
    最近更新 更多