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