【问题标题】:Replacing part of a data frame with another data frame用另一个数据框替换一个数据框的一部分
【发布时间】:2021-06-27 12:07:06
【问题描述】:

让我有以下数据框(df1 和 df2):

df1<-c(1,32,34,5,3,2,1,7,6,4,2,1)
df2<-c(100,100,100)

我想创建一个新的数据框(df3),如下所示:

> df3
 [1]   1  32  34 100 100 100   1   7   6   4   2   1

其中第 4 个元素到第 6 个元素来自 df2。其他都来自 df1。

如何创建这样的数据框?非常感谢。

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    这些不是数据帧,而是向量。你可以使用[]替换它们

    df1<-c(1,32,34,5,3,2,1,7,6,4,2,1)
    df2<-c(100,100,100)
    
    replace_vec <- 4:6
    df1[replace_vec] <- df2
    df1
    #[1]   1  32  34 100 100 100   1   7   6   4   2   1
    

    同样你也可以使用replace -

    df1 <- replace(df1, replace_vec, df2)
    

    【讨论】:

      【解决方案2】:

      我们可以使用

      ifelse(seq_along(df1) %in% 4:6, df2, df1)
      [1]   1  32  34 100 100 100   1   7   6   4   2   1
      

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 2021-09-03
        • 2021-02-18
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多