我有一个像这样的矩阵:
( MAT = cbind(apple = c(cat=1, dog=2), banana = c(3, 4)) )
apple banana
cat 1 3
dog 2 4
我想像这样将其转换为长格式:
( LONG = data.frame(value = as.vector(MAT),
fruit = rep(colnames(MAT), each = nrow(MAT)),
animal = rep(rownames(MAT), ncol(MAT))) )
value fruit animal
1 1 apple cat
2 2 apple dog
3 3 banana cat
4 4 banana dog
有人有更简单的方法吗?显然,有很多方法可以做到这一点,而我要寻找的是比上面更简单的方法。
如果我必须创建一个data.frame,将行名添加为新列,加载tidyr库并进行一个复杂的函数调用来收集,那么我不认为这更简单。