gpt4 book ai didi

R 无法融化 data.frame

转载 作者:行者123 更新时间:2023-12-04 00:01:18 25 4
gpt4 key购买 nike

我有以下 data.frame,称为 tableMS:

     X   Y        Z        T
1 375 855 455.7259 3777.856
2 395 969 347.8306 2506.7
3 449 811 309.9512 519.8513
4 451 774 278.291 717.8705
5 453 774 278.291 717.8705
6 455 774 278.291 717.8705
7 521 697 376.734 693.8541
8 529 855 455.7259 3777.856
9 531 855 455.7259 3777.856
10 609 774 278.291 717.8705

当我尝试使用函数melt()
MeltTable <- melt(tableMS,id=c("X","Y"))

我收到以下错误:
Error in match.names(clabs, names(xi)) : 
names do not match previous names

我很难理解会发生什么,知道吗?

编辑:
我生成了 tableMS 作为更大表的一部分, str(tableMS) 的输出是:
'data.frame':   10 obs. of  4 variables:
$ X: num 375 395 449 451 453 455 521 529 531 609
$ Y: num 855 969 811 774 774 774 697 855 855 774
$ Z:List of 10
..$ : num 456
..$ : num 348
..$ : num 310
..$ : num 278
..$ : num 278
..$ : num 278
..$ : num 377
..$ : num 456
..$ : num 456
..$ : num 278
$ T:List of 10
..$ : num 3778
..$ : num 2507
..$ : num 520
..$ : num 718
..$ : num 718
..$ : num 718
..$ : num 694
..$ : num 3778
..$ : num 3778
..$ : num 718

最佳答案

我有同样的问题,但原因不同。我收到相同的错误消息“名称与以前的名称不匹配”,但这是由于使用了包 dplyr .

原来是known issue with dplyr .根据 GitHub 问题,它会发生在某些版本的 dplyr 和 reshape 上,但不会发生在其他版本上。

的输出dplyr 不仅仅是一个 data.frame - 它继承自 data.frame。所以在使用dplyr产生data之后这是结果:

class(data)

> [1] "tbl_df" "tbl" "data.frame"

melt(data, id = c("X", Y"))

>Error in match.names(clabs, names(xi)) :
names do not match previous names

为了解决这个问题,我必须转换 dplyr 输出到数据帧。这似乎也是组合这些包的推荐方式:
data <- as.data.frame(data)
class(data)

> [1] "data.frame"

melt(data, id = c("X", "Y"))

然后最后一个块完成而没有错误。

关于R 无法融化 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com