Reshape2:dcast()返回-“总和”对因素没有意义

时间:2018-06-27 15:39:33

标签: r reshape2 dcast

数据集:我将其称为CAR

Car_Type | Cyl | Miles | State | Color | Tires

.....

我的数据可以有NULL的{​​{1}}

我正在尝试在将所有变量都显示为数字的数据集上运行Milesdcast()

sapply(CAR, mode))

运行以下代码时,我得到的值分别为0和1,看起来它返回的是Miles不是> sapply(CAR, mode) > CAR Cyl Miles State Color Tires > "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 的次数:

NULL

当我尝试运行以下命令以获得里程总和

Pivot <- dcast(CAR, Car_Type ~ Cyl, value.var = "Miles")

我收到以下错误:

  

“总和”对因素没有意义

我尝试了Pivot <- dcast(CAR, Car_Type ~ Cyl, value.var = "Miles", fun.aggregate = sum) ,但收到相同的错误。

我在这里想念的是什么,以便能够在“枢轴旋转” transform(CAR, Miles = as.numeric(Miles))Car_Type并汇总英里总和时找到英里总和? Cyl值是否引起错误?我认为NULL并不是NULL聚合的问题。

1 个答案:

答案 0 :(得分:0)

我吃了午餐,想了几件事,并弄清楚了。即使Miles返回“数字”,我的变量sapply()似乎还是一个因素。我运行了以下内容:

is.numeric(CAR$Miles)
[1] FALSE

然后我通过运行将因子转换为数字(有关更多信息,请访问Changing values when converting column type to numeric

CAR$Miles2 <- as.numeric(as.character(CAR$Miles))

从因子更改为数值后,我能够成功运行我的生产线:

Pivot <- dcast(CAR, Car_Type ~ Cyl, value.var = "Miles2", fun.aggregate = sum, na.rm=TRUE)