一个data.frame D1有3行和3个colmuns,如下所示:
C1 C2 C3
a x 1
b y 2
c z 3
我希望D1将其列彼此粘贴,就像:
a_x a_1 x_1
b_y b_2 y_2
c_z c_z z_3
我怎样才能有效地获得这个新的数据帧。
答案 0 :(得分:1)
我们可以使用combn
D1[] <- combn(D1, 2, FUN = function(x) paste(x[,1], x[,2], sep="_"))
D1
# C1 C2 C3
#1 a_x a_1 x_1
#2 b_y b_2 y_2
#3 c_z c_3 z_3
D1 <- structure(list(C1 = c("a", "b", "c"), C2 = c("x", "y", "z"),
C3 = 1:3), .Names = c("C1", "C2", "C3"), class = "data.frame",
row.names = c(NA, -3L))