2016-02-27 293 views
1

我想用vector中的三个值替换data.frame中最后三列的值。 data.frame如何使用R中的向量中的值替换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] 

我想没有一个替代值之一。我想一次完成。

任何帮助将不胜感激。请让我知道是否需要更多信息。

回答

2

我们可以子集的数据集的最后三列,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) 
相关问题