melt.data.table

时间:2016-12-12 17:55:14

标签: r data.table reshape2 melt

meltdata.table中使用reshape2后,我需要操纵variable列的值,因此我需要它为{{1} } .class。如果由于某些格式错误的因素错误而失败。

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

这是我数据的一小部分:

character

当我跑步时:

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)

我之前从未遇到过这种情况,但我无法找到此错误的文档。

1 个答案:

答案 0 :(得分:3)

我认为这不是一个错误。数据帧和扩展名data.tables不应该有多个具有相同名称的列。如果列被命名为遵守该规则,则没有错误。我希望data.table - print方法将字符值括在引号中,因为这些值(qtr除外)都是字符值。