2017-03-24 70 views
0

我正在寻找一种方法来将列“col1”复制x次,并将每个这样的副本从一个字符向量附加到x个字符串中。例如:造成动态复制后缀为R的数据框列R

df <- data.frame(col1 = c(1,2,3,4,5)) 
suffix <- c("a", "b", "c") 

df_suffix <- data.frame(col1 = c(1,2,3,4,5), col1_a = c(1,2,3,4,5), col1_b = c(1,2,3,4,5), col1_c = c(1,2,3,4,5)) 

    col1 col1_a col1_b col1_c 
1 1  1  1  1 
2 2  2  2  2 
3 3  3  3  3 
4 4  4  4  4 
5 5  5  5  5 

回答

2

您可以使用paste()创建内部df新列,并为其指定的第一列的值:

df[,paste(names(df), suffix, sep = "_")] <- df[,1] 
# col1 col1_a col1_b col1_c 
#1 1  1  1  1 
#2 2  2  2  2 
#3 3  3  3  3 
#4 4  4  4  4 
#5 5  5  5  5