在R中的两行之间串联值

在R中的两行之间串联值,r,concatenation,paste,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 有人能帮我使用粘贴功能吗?我一直在尝试以下方法,但没有成功: > paste(dat[1,], dat[2,], sep="-") [1] "2-1" "2-1" "2-1" >

我试图以相似的格式将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
有人能帮我使用粘贴功能吗?我一直在尝试以下方法,但没有成功:

> 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"
提前谢谢

这里有一种方法:

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
前提是您已采取必要步骤避免使用系数,即

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

row1带有
数据的一个选项。表

library(data.table)
rbindlist(list(dat, setDT(dat)[, lapply(.SD, paste, collapse='-')]))
#    X1  X2  X3
#1:   A   B   C
#2:   1   2   3
#3: A-1 B-2 C-3

做一个
dat[]谢谢,这很好用!我很感激
library(data.table)
rbindlist(list(dat, setDT(dat)[, lapply(.SD, paste, collapse='-')]))
#    X1  X2  X3
#1:   A   B   C
#2:   1   2   3
#3: A-1 B-2 C-3