Dcast()奇怪的输出

时间:2019-06-25 14:17:43

标签: r dcast

我有两个数据框。将相同的dcast()函数应用于这两个函数会使我在输出中得到不同的结果。这两个数据集具有相同的结构,但大小不同。第一个有超过950行:

enter image description here

我应用的代码是:

trans_matrix_complete <- mod_attrib$transition_matrix




trans_matrix_complete[which(trans_matrix_complete$channel_from=="_3RDLIVE"),]

trans_matrix_complete <- rbind(trans_matrix_complete, df_dummy) 


trans_matrix_complete$channel_to <- factor(trans_matrix_complete$channel_to,
                             levels = c(levels(trans_matrix_complete$channel_to)))

trans_matrix_complete <- dcast(trans_matrix_complete,
                               channel_from ~ channel_to,value.var = 'transition_probability')

我得到的trans_matrix_complete输出如下:

enter image description here

有些事情无法正常工作,就像只有几行的较小数据框一样,我得到以下结果:

enter image description here

哪里

a)行号不同。我不确定为什么在第一种情况下会列出两个点

b)也是,尝试通过以下方式将行名分配给数据框

row.names(trans_matrix_complete) <- trans_matrix_complete$channel_from

不适用于大型数据框,尽管row.name与数据框的联系与第一个图像中显示的完全一样,没有为行分配名称。

关于这种奇怪行为的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我解决了使用以下功能从tidyverse的dcast()迁移到spread()的问题:

trans_matrix_complete <-spread(trans_matrix_complete, channel_to,transition_probability)

通过对两个数据帧应用spread(),矩阵输出具有相同的格式,并且可以毫无问题地接受行名。

所以我怀疑这完全是因为不再维护dcast()和reshape2软件包

致谢