Melt 函数错误:match.names(clabs, names(xi)) 中的错误:名称与以前的名称不匹配

问题描述 投票:0回答:1

我需要转换此数据集,其中有列/日期和行/变量/名称:

变量 1 (%)、变量 2($):

姓名 日期1 日期2 日期 3
姓名1 价值11% 价值12% 价值13%
姓名2 价值21% 价值22% 价值23%
姓名3 价值31% 价值32% 价值33%
姓名1 价值11$ 价值12$ 价值13$
姓名2 价值21$ 价值22$ 价值23$
姓名3 价值31$ 价值32$ 价值33$

成为包含列/变量和行/日期/名称的数据集:

合并数据集:

姓名 日期 变量1 变量2
姓名1 日期1 价值11$。 价值11%。
姓名1 日期2 价值12$。 价值12%。
姓名1 日期 3 价值13$。 价值13%。
姓名2 日期1 价值21$。 价值21%。
姓名2 日期2 价值22$。 价值22%。
姓名2 日期 3 价值23$。 价值23%。
姓名3 日期1 价值31$。 价值31%。
姓名3 日期2 价值32$。 价值32%。
姓名3 日期 3 价值33$。 价值33%。

现在,我尝试使用第一个数据集和函数melt,名称为id:

融化(数据,id =“名称”)

不幸的是,我收到以下错误消息: match.names(clabs, names(xi)) 中的错误: 名字与以前的名字不匹配

可能是哪个错误?还有其他选择可以实现我的目标吗?

或者,我尝试从两个不同数据集中的两个变量导入数据,并使用 rbind 来整合它们,并通过 indetical 函数检查列名是否相同并且结果是否为 TRUE。我不知道这可能是导致此错误的原因。

非常感谢大家的帮助!

数据:

data <- data.frame(
  stringsAsFactors = FALSE,
              Name = c("Name1", "Name2", "Name3", "Name1", "Name2", "Name3"),
            Date.1 = c("Value11%","Value21%",
                       "Value31%","Value11$","Value21$","Value31$"),
            Date.2 = c("Value12%","Value22%",
                       "Value32%","Value12$","Value22$","Value32$"),
            Date.3 = c("Value13%","Value23%",
                       "Value33%","Value13$","Value23$","Value33$")
)
r melt
1个回答
0
投票

而不是使用

melt()
包中的
cast()
reshape2
,而是 推荐使用
pivot_wider()
中的
pivot_longer()
tidyr
用于在宽数据格式和长数据格式之间旋转/重塑的包。

您的数据可能如下所示:

library(tidyverse)

data |>
  pivot_longer(-Name,
               names_to = "Date",
               values_to = "Variable1")
#> # A tibble: 18 × 3
#>    Name  Date   Variable1
#>    <chr> <chr>  <chr>    
#>  1 Name1 Date.1 Value11% 
#>  2 Name1 Date.2 Value12% 
#>  3 Name1 Date.3 Value13% 
#>  4 Name2 Date.1 Value21% 
#>  5 Name2 Date.2 Value22% 
#>  6 Name2 Date.3 Value23% 
#>  7 Name3 Date.1 Value31% 
#>  8 Name3 Date.2 Value32% 
#>  9 Name3 Date.3 Value33% 
#> 10 Name1 Date.1 Value11$ 
#> 11 Name1 Date.2 Value12$ 
#> 12 Name1 Date.3 Value13$ 
#> 13 Name2 Date.1 Value21$ 
#> 14 Name2 Date.2 Value22$ 
#> 15 Name2 Date.3 Value23$ 
#> 16 Name3 Date.1 Value31$ 
#> 17 Name3 Date.2 Value32$ 
#> 18 Name3 Date.3 Value33$
© www.soinside.com 2019 - 2024. All rights reserved.