meldata.frame的默认行为是将“变量”列返回为“因子”类。以下是一个示例:
> head(airquality)
ozone solar.r wind temp month day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
> x = melt(head(airquality))
Using as id variables
> head(x)
variable value
1 ozone 41
2 ozone 36
3 ozone 12
4 ozone 18
5 ozone NA
6 ozone 28
> class(x$variable)
[1] "factor"
问题是是否有参数可以将类从factor更改为character?我尝试过options(stringsAsFactors = FALSE)
但它没有起作用。
melt()
函数包裹在另一个函数中,该函数执行df$variable <- as.character(df$variable)
。 - hadleymelt.data.frame
和melt.matrix
的变量列参数名称不同(variable.name
vsvarnames
)。如果实际的melt
能够使用字符而不是因子,那就更好了。 - Konrad Rudolph