dcast()value.var找不到输入

时间:2018-01-05 08:49:43

标签: r dcast

我正在尝试使用dcast(),但我无法弄清楚为什么会出现此错误:

  

“错误:输入中找不到value.var(mpg)”。 Dcast似乎无法找到“mpg”,这是我在熔化函数中做出的一种衡量标准。

你们能帮助我吗?

这是我的代码:

data("mtcars")
install.packages("reshape")
library(reshape)  
install.packages("reshape2")
library(reshape2)

mdata <- melt(mtcars, id=c("gear","cyl"), measure.vars = c("mpg","hp"))
castData <- dcast(mdata, gear ~ cyl, value.var="mpg")

2 个答案:

答案 0 :(得分:0)

如果您使用

检查已创建mdata的对象
View(mdata)

您可以看到没有名为mpg的列。

您可以创建如下列:

mdata <- dcast(mdata, gear + rowid(gear) ~ cyl, value.var="value")

答案 1 :(得分:0)

我想知道你是否正在尝试重新设计mpg的数据,正如@akrun和@Lorenzo已经提到的那样,这不是mdata中的一个字段。你将mtcars中的hp和mpg字段融合成一个名为variable的字段中的值。

此外,您对dcast的调用不完整 - 您应该指定要使用的聚合函数。作为使用dcast的一个例子,我已经调整了你的dcast语句,用mdata中的熔化变量字段显示mpg和hp,其中均值为聚合:

castData <- dcast(mdata, gear + variable ~ cyl, value.var="value", fun.aggregate = mean)
> castData
  gear variable       4      6        8
1    3      mpg  21.500  19.75  15.0500
2    3       hp  97.000 107.50 194.1667
3    4      mpg  26.925  19.75      NaN
4    4       hp  76.000 116.50      NaN
5    5      mpg  28.200  19.70  15.4000
6    5       hp 102.000 175.00 299.5000

顺便说一下,你不需要附加重塑库 - reshape2就足够了。