如何用 R 中向量中的值替换 data.frame 中多列中的值?

How to replace values in multiple columns in a data.frame with values from a vector in R?

我想用向量中的三个值替换 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]

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

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

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

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

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

试试这个:

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)