2016-02-27 314 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) 
相關問題