复制数据框中的列并将其重命名为另一个列名

时间:2014-02-26 02:04:57

标签: r dataframe

我有一个类似下面示例的数据框。我想复制数据框中的一列并重命名为另一个列名。

Name    Age    Rate
Aira     23     90
Ben      32     98
Cat      27     95

欲望输出是:

Name    Age     Rate     Rate2
Aira    23      90       90
Ben     32      98       98
Cat     27      95       95

我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:12)

在用户@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).

复制,复制或复制的另一种选择:

#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

答案 1 :(得分:1)

使用dplyr通过mutate复制(复制)列:

df <- data.frame(
  Name = c('Aira', 'Ben', 'Cat'),
  Age = c(23, 32, 27),
  Rate = c(90, 98, 95)
)

df %>% 
  mutate(Rate2 = Rate)

#   Name Age Rate Rate2
# 1 Aira  23   90    90
# 2  Ben  32   98    98
# 3  Cat  27   95    95