R:'listgreater'中“未实现类型'列表'的错误消息

时间:2011-04-12 16:10:22

标签: r casting

使用以下命令(x是包含3列A,B和C列的表)

library(reshape)
cast(x, A~B)

出现以下错误:

Using C as value column.  Use the value argument to cast to override this choice
Error in order(A = list("xxx",  : 
  unimplemented type 'list' in 'listgreater'

它意味着什么以及如何解决它?


我想这可能是由于数据帧的数据格式(如果我错了,请纠正我)。我用str命令测试了表x和y的格式。

str(x) returns
$ A: List of 6
..$ : chr "xxx"
....
$ B:chr "yyy" "yy2" ....
...
$ C: List of 6
..$ : num 22.....
...

对于另一个带有D E和F列的表y,运行cast命令时不会显示错误消息。

str(y) shows that all D E F columns are Factor w/ 6 levels....

如何为list和num包含数据帧x?

进行强制转换

2 个答案:

答案 0 :(得分:1)

使用

df <- as.data.frame(lapply(df, unlist))

答案 1 :(得分:0)

我认为第一个data.frame不是data.frame而是列表。转换为data.frame将解决问题。使用:

x <- as.data.frame(x)
library(reshape)
cast(x, A~B)

HTH