如何使用熔化命名每个变量

Jos*_*R. 10 r melt reshape2

我有一个矩阵,我想改进绘制ggplo2使用melt函数,reshape2但无法找到添加自定义标题名称的方法.

#Create toy data
MyData <- matrix(rnorm(15,500), nrow = 5, ncol = 3, dimnames = list(
    c("Unknown","0-4","4-9","10-14","15-19"),c("Area1","Area2","Area3")))

Dat2 <- melt(MyData, value.name = "Count")

#Reform data using melt, define Count as value name
MyData2 <- melt(MyData, value.name = "Count")
Run Code Online (Sandbox Code Playgroud)

这让我得到了我想要的东西,但接下来的操作必须参考Var1Var2.

我尝试使用variable.name以下命令明确命名它们:

MyData2 <- melt(MyData, value.name = "Count",
    variable.name = c("AgeGroup", "Geo"))
Run Code Online (Sandbox Code Playgroud)

我当然可以在使用之后命名它们colnames()但是想要使用它melt.这可能吗?我需要备份吗?

谢谢!

mat*_*fee 13

使用varnames参数:

melt(MyData, value.name = "Count", varnames=c('AgeGroup', 'Geo'))
   AgeGroup   Geo    Count
1   Unknown Area1 501.6685
2       0-4 Area1 499.2812
3       4-9 Area1 500.3892
4     10-14 Area1 498.6380
5     15-19 Area1 500.5904
6   Unknown Area2 499.4590
7       0-4 Area2 500.5464
8       4-9 Area2 500.5635
9     10-14 Area2 500.7211
10    15-19 Area2 500.8381
11  Unknown Area3 498.8154
12      0-4 Area3 499.1818
13      4-9 Area3 499.6678
14    10-14 Area3 499.3586
15    15-19 Area3 500.3962
Run Code Online (Sandbox Code Playgroud)

MyData是一个矩阵(所以使用melt.array它使用varnames)而不是数据帧(melt.data.frame使用variable.name).?melt.array.

  • 上面的解决方案适用于重命名变量,但我发现 value.name 不适用于命名值。我觉得这以前有效,查看我用于构建诊断图的一些过去的代码。该文档仅将 varnames 作为函数的一部分,因此命名值列甚至不可能? (2认同)