在 R 中连接两行的值

ZMa*_*zzi 4 r concatenation paste

我正在尝试使用类似的格式连接 R 中数据帧中的两行

row1 <- c("A","B","C")
row2 <- c(1:3)
dat <- data.frame(rbind(row1,row2))
dat
     X1 X2 X3
row1  A  B  C
row2  1  2  3
Run Code Online (Sandbox Code Playgroud)

我想要第三排的类型

row3 A-1 B-2 C-3
Run Code Online (Sandbox Code Playgroud)

有人可以帮我使用粘贴功能来做到这一点吗?我一直在尝试以下方法但没有成功:

> paste(dat[1,], dat[2,], sep="-")
[1] "2-1" "2-1" "2-1"
> paste(as.character(dat[1,]), dat[2,], sep="-")
[1] "2-1" "2-1" "2-1"
Run Code Online (Sandbox Code Playgroud)

提前致谢!

nru*_*ell 5

这是一种方法:

rbind(dat, row3 = apply(dat, 2, paste0, collapse = "-"))
#      X1  X2  X3
#row1   A   B   C
#row2   1   2   3
#row3 A-1 B-2 C-3
Run Code Online (Sandbox Code Playgroud)

前提是您已采取必要的步骤来避免使用factors,即

row1 <- c("A","B","C")
row2 <- as.character(1:3)
dat <- data.frame(
  rbind(row1, row2), 
  stringsAsFactors = FALSE
)
Run Code Online (Sandbox Code Playgroud)