Reputation: 5709
I have a data frame like sample below. I would like to duplicat a column in the data frame and rename to another column name.
Name Age Rate
Aira 23 90
Ben 32 98
Cat 27 95
Desire output is :
Name Age Rate Rate2
Aira 23 90 90
Ben 32 98 98
Cat 27 95 95
How can I do it? Thank you.
Upvotes: 26
Views: 94716
Reputation: 15065
Replication (making a copy) of a column via dplyr
is achieved using mutate
:
df <- data.frame(
Name = c('Aira', 'Ben', 'Cat'),
Age = c(23, 32, 27),
Rate = c(90, 98, 95)
)
df <- df %>%
mutate(Rate2 = Rate)
# Name Age Rate Rate2
# 1 Aira 23 90 90
# 2 Ben 32 98 98
# 3 Cat 27 95 95
Upvotes: 9
Reputation: 4928
Answered with help of user @thelatemail.
df = read.table(sep="",
header=T,
text="Name Age Rate
Aira 23 90
Ben 32 98
Cat 27 95")
df$Rate2 = df$Rate #create column 'Rate2' and make it equal to 'Rate' (duplicate).
Another option to duplicate, triplicate or 'n plicate':
#use ?replicate function, which replicates elements over vectors and lists.
n = 3 #replicate 3 new columns
df3 = cbind(df, replicate(n,df$Rate)) #replicate from column "Rate" in the df object
df3 #plot df3 output
Name Age Rate 1 2 3
1 Aira 23 90 90 90 90
2 Ben 32 98 98 98 98
3 Cat 27 95 95 95 95
Upvotes: 32