melt.data.table 中的畸形因子错误

Malformed Factor error in melt.data.table

data.tablereshape2 中使用 melt 后,我需要操作 variable 列的值,所以我需要它是 character class。如果由于某些 畸形因素 错误而失败。

我不明白这是什么问题 -- 也许是错误?

这是我的一小部分数据:

dput(eg.dat)

structure(list(qtr = structure(c(2004.75, 2005, 2005.25, 2005.5, 
2005.75, 2006, 2006.25, 2006.5, 2006.75, 2007, 2007.25), class = "yearqtr"), 
ACAIND1INR = c("99.5", "101.2333333333333", "105.4666666666667", 
"108.9333333333333", "113.3", "124.8666666666667", "149.7333333333333", 
"167.5333333333333", "170.5", "175.7", "189.6666666666667"
), ACAIND1INR = c("99.5", "101.4", "105.4", "108.9", "113", 
"125.7", "149.5", "167.4", "170.5", "176.3", "189.4"), ACAIND2INR = c("99.2", 
"101.2", "105.1", "108.5333333333333", "113.1", "125.3333333333333", 
"150.5", "170.0666666666667", "171.4666666666667", "173.7333333333333", 
"184.4333333333333"), ACAIND2INR = c("99.2", "101.6", "105.1", 
"108.4", "112.9", "125.5", "149.4", "169.8", "171.5", "174.2", 
"184.3")), .Names = c("qtr", "ACAIND1INR", "ACAIND1INR", 
"ACAIND2INR", "ACAIND2INR"), class = c("data.table", "data.frame"
), row.names = c(NA, -11L), .internal.selfref = <pointer: 0x0000000000120788>)


        qtr        ACAIND1INR ACAIND1INR        ACAIND2INR ACAIND2INR
 1: 2004.75              99.5       99.5              99.2       99.2
 2: 2005.00 101.2333333333333      101.4             101.2      101.6
 3: 2005.25 105.4666666666667      105.4             105.1      105.1
 4: 2005.50 108.9333333333333      108.9 108.5333333333333      108.4
 5: 2005.75             113.3        113             113.1      112.9
 6: 2006.00 124.8666666666667      125.7 125.3333333333333      125.5
 7: 2006.25 149.7333333333333      149.5             150.5      149.4
 8: 2006.50 167.5333333333333      167.4 170.0666666666667      169.8
 9: 2006.75             170.5      170.5 171.4666666666667      171.5
10: 2007.00             175.7      176.3 173.7333333333333      174.2
11: 2007.25 189.6666666666667      189.4 184.4333333333333      184.3

当我运行:

melt(eg.dat, id.vars = 'qtr', variable.factor = FALSE)

我收到错误,因子变量 格式错误,但我无法弄清楚这意味着什么或如何修复它:

Error in melt.data.table(eg.dat, id.vars = "qtr", variable.factor = FALSE) : 
    malformed factor

我以前从未遇到过这种情况,而且我一直无法找到有关此错误的文档。

我不认为这真的是一个错误。 Dataframes 和扩展 data.tables 不应该有多个同名的列。如果列被命名为遵守该规则,则不会出现错误。我确实希望 data.table-print 方法将字符值括在引号中,因为这些值(除了 qtr)都是字符值。