有没有一种方法可以一次粘贴数据帧中的所有列
asd <- data.frame(a = c("A", "B"), b = c(1,2))
我需要粘贴所有列(a和b),并更改A列,如下所示
asd$a <- paste0(asd$a, "_", asd$b)
但是有没有办法实现自动化,因为如果一个数据帧有很多列(a、b、c等等).
asd <- data.frame(a = c("A", "B"), b = c(1,2), c = c(1,2), x = c(1,2))
预期yields (只需组合a、b和c)
asd
a b c x
1 A_1_1 1 1 1
2 B_2_2 2 2 2
我们可以用asd$a <- paste0(asd$a, "_", asd$b, "_", asd$c)
来做,但要找一些简单的方法.
我try 了下面的功能,但不工作
paste_function <- function(df, df_col = c(a, b)){
for (i in df_col){
return(substr(paste0(df,'$',df_col,collapse = ",", sep = ",'_'"), 1,nchar(paste0(df,'$',df_col,collapse = ",", sep = ",'_'"))-4))
}
}
asd$a <- paste_function(asd, df_col = c(a, b, c))