أنا لا أعرف لماذا جزء ، لكنني أعلم أنه يمكنك الحصول على أسماء الصفوف melt
جي matrix
بدل من data.frame
:
melt(as.matrix(dat))
# Var1 Var2 value
# 1 Cubn FOO 3.7145516
# 2 Gm9779 FOO 2.5605166
# 3 Apod FOO 3.5179670
# 4 Cubn BAR 0.2374546
# 5 Gm9779 BAR 0.2085075
# 6 Apod BAR 0.1959992
عليك أن تنظر إلى الكود إلى melt
وظيفة لمعرفة لماذا يتصرف بهذه الطريقة. على وجه الخصوص ، الرمز ل reshape2:::melt.matrix
يحتوي على الأسطر التالية التي ستنشئ العمودين الأولين في المثال أعلاه:
labels <- expand.grid(lapply(dn, var.convert), KEEP.OUT.ATTRS = FALSE,
stringsAsFactors = FALSE)