连接行和列

时间:2017-02-23 10:57:54

标签: r

我有这样的数据集

       x    y   z
       a    5   4
       b    1   2 

我想要连续的列和行:

ay 5
az 4
by 1
bz 2

由于

2 个答案:

答案 0 :(得分:1)

您可以使用meltpaste但是您需要将您的rownames变为变量,i..e

df$new <- rownames(df)
m_df <- reshape2::melt(df)
rownames(m_df) <- paste0(m_df$new, m_df$variable)
m_df <- m_df[-c(1:2)]

m_df
#   value
#ax     5
#bx     1
#ay     4
#by     2
#az     3
#bz     1

编辑完成后,您无需将rownames转换为变量,只需

m1_df <- reshape2::melt(df)
m1_df$new <- paste0(m1_df$x, m1_df$variable)

m1_df
#  x variable value new
#1 a        y     5  ay
#2 b        y     1  by
#3 a        z     4  az
#4 b        z     2  bz

然后,您可以将数据框整理为所需的输出

答案 1 :(得分:0)

以下是base R

中的另一个选项
stack(setNames(as.list(unlist(df1[-1])), outer(df1$x, names(df1)[-1], paste0)))[2:1]