1
当使用dcast与该亚群的说法,我收到以下错误,当原始数据帧&子集的数据帧上的dcast上dcast不相匹配的行。R:dcast错误使用时,子集 - 不同的行大小
错误data.frame(...,check.names = FALSE): 参数意味着不同的行数:2,3
我已再现与mtcars数据集中的错误。以下是复制代码。
library(reshape2)
# dataframe
mtcars2 <- mtcars[, c('vs','am','gear','carb')]
mtcars2$cars <- row.names(mtcars)
row.names(mtcars2) <- NULL
mtcars2$dummyvariable <- 1
mtcars2.melt <- melt(mtcars2, id=c('cars','vs','am','gear','carb'))
colnames(mtcars2.melt)
# [1] "cars" "vs" "am" "gear" "carb" "variable" "value"
dcast(mtcars2.melt, vs ~ am, drop=FALSE, margins=TRUE)
# Aggregation function missing: defaulting to length
# vs 0 1 (all)
# 1 0 12 6 18
# 2 1 7 7 14
# 3 (all) 19 13 32
cadillac <- subset(mtcars2.melt, regexpr('Cadillac',cars)>0)
dcast(cadillac, vs ~ am, drop=FALSE, margins=TRUE)
# Error in data.frame(..., check.names = FALSE) :
# arguments imply differing number of rows: 2, 3
dcast(cadillac, vs ~ am, margins=TRUE)
# vs 0 (all)
# 1 0 1 1
# 2 (all) 1 1
最后dcast表明,可以通过跳过下降= FALSE条件可避免的错误,但我期望的输出是
vs 0 1 (all)
1 0 1 0 1
2 1 0 0 0
3 (all) 1 0 1
任何帮助将是巨大的! :)
谢谢
你能提供你的'sessionInfo()'的副本?这段代码对我很好用 – hadley 2011-03-17 12:50:13
@hadley 对不起,引起错误的代码包括dcast中的代码子集,代码为dcast(mtcars2.melt,vs〜am,drop = FALSE,margins = TRUE,subset =。 (regexpr( '凯迪拉克',汽车)> 0)) 使用dummyvariable作为值列:使用value_var重写。 错误data.frame(...,check.names = FALSE): 参数意味着,不同的行数:2,3'code' – user662963 2011-03-17 17:49:50
该代码正常工作对我来说太。 – hadley 2011-03-17 20:17:34