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

Ian*_*the 9 r dataframe

我有一个数据框,如下面的示例.我想复制数据框中的列并重命名为另一个列名.

Name    Age    Rate
Aira     23     90
Ben      32     98
Cat      27     95
Run Code Online (Sandbox Code Playgroud)

欲望输出是:

Name    Age     Rate     Rate2
Aira    23      90       90
Ben     32      98       98
Cat     27      95       95
Run Code Online (Sandbox Code Playgroud)

我该怎么做?谢谢.

And*_*lva 13

在用户@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).
Run Code Online (Sandbox Code Playgroud)

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

#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
Run Code Online (Sandbox Code Playgroud)

  • @Luis `<-` 和 `=` 是一样的。第一个更像R。 (4认同)

Wer*_*ner 7

dplyr使用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
Run Code Online (Sandbox Code Playgroud)

  • @teppo:您可以“跨”选择的列进行“变异”,或绑定列。请参阅[此粘贴](https://pastebin.com/raw/Z2zXMKKC)。您可以在绑定之前“重命名”列选择,否则会出现重复名称或附加数字。 (2认同)