我正在尝试使用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")
答案 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就足够了。