我想将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]
我想不要逐个替换这些值。我想一下子做完。
任何帮助将不胜感激。如果需要任何进一步的信息,请告诉我。
答案 0 :(得分:2)
我们可以使用tail
对数据集的最后三列进行子集化,复制“向量”以使长度相似并将值分配给这些列
df[,tail(names(df),3)] <- Vector[col(df[,tail(names(df),3)])]
df
# A B C D
#1 5 1 2 3
注意:我复制了'Vector',假设原始数据集中'df'中会有更多行。
答案 1 :(得分: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)