【问题标题】:How to replace values in multiple columns in a data.frame with values from a vector in R?如何用 R 中向量的值替换 data.frame 中多列中的值?
【发布时间】:2016-06-10 16:40:28
【问题描述】:

我想将 data.frame 中最后三列的值替换为向量中的三个值。

data.frame 示例

df
A  B  C  D
5  3  8  9

矢量

1  2  3

我希望 data.frame 的样子。

df
A  B  C  D
5  1  2  3

目前我在做:

df$B <- Vector[1]
df$C <- Vector[2]
df$D <- Vector[3]

我不想一一替换这些值。我想一次性完成。

任何帮助将不胜感激。如果需要任何进一步的信息,请告诉我。

【问题讨论】:

    标签: r vector replace gsub


    【解决方案1】:

    我们可以使用tail 对数据集的最后三列进行子集化,复制“向量”以使长度相似并将值分配给这些列

    df[,tail(names(df),3)] <- Vector[col(df[,tail(names(df),3)])]
    df
    #  A B C D
    #1 5 1 2 3
    

    注意:我复制了“向量”,假设原始数据集中的“df”中会有更多行。

    【讨论】:

      【解决方案2】:

      试试这个:

      df[-1] <- 1:3
      

      给予:

      > df
        A B C D
      1 5 1 2 3
      

      或者,我们可以像这样非破坏性地做到这一点:

      replace(df, -1, 1:3)
      

      注意:可重现形式的输入df 是:

      df <- data.frame(A = 5, B =3, C = 8, D = 9)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-05
        • 2017-07-31
        • 1970-01-01
        • 2019-05-07
        相关资源
        最近更新 更多