首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R data.table dcast错误消息不清楚

R data.table dcast错误消息不清楚
EN

Stack Overflow用户
提问于 2022-11-12 14:26:17
回答 2查看 33关注 0票数 0

我的数据表comb (下面的dput输出)具有下面的结构。我想把它扔成这样

代码语言:javascript
复制
comb_wide <- dcast(comb, scenarios + qName + hemName ~ PWC_cutoff, value.var = sum)

R返回此错误消息。

代码语言:javascript
复制
Error in setattr(ans, "names", c(lhsnames, allcols)) : 
  'names' attribute [7] must be the same length as the vector [3]

我不知道属性7和向量3指的是什么。

代码语言:javascript
复制
> str(comb)
Classes ‘data.table’ and 'data.frame':  96 obs. of  5 variables:
 $ scenarios : chr  "historical_1991_2010" "ssp126_2041_2060" "ssp126_2081_2100" "ssp585_2041_2060" ...
 $ qName     : chr  "q1" "q1" "q1" "q1" ...
 $ hemName   : Factor w/ 2 levels "NH","SH": 1 1 1 1 1 1 1 1 1 1 ...
 $ sum       : num  0 0 0 0 0 ...
 $ PWC_cutoff: num  20 20 20 20 20 20 40 40 40 40 ...
 - attr(*, ".internal.selfref")=<externalptr> 

dput输出

代码语言:javascript
复制
structure(list(scenarios = c("historical_1991_2010", "ssp126_2041_2060", 
"ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", "aglabor", 
"historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor", "historical_1991_2010", 
"ssp126_2041_2060", "ssp126_2081_2100", "ssp585_2041_2060", "ssp585_2081_2100", 
"aglabor", "historical_1991_2010", "ssp126_2041_2060", "ssp126_2081_2100", 
"ssp585_2041_2060", "ssp585_2081_2100", "aglabor"), qName = c("q1", 
"q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", 
"q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", 
"q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", 
"q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", "q1", 
"q1", "q1", "q1", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", 
"q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", 
"q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", 
"q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", "q3", 
"q3", "q3", "q3", "q3", "q3", "q3", "q3"), hemName = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), levels = c("NH", 
"SH"), class = "factor"), sum = c(0, 0, 0, 0, 0, 746051, 0, 0, 
0, 0, 35, 746051, 0, 141, 341, 598, 25672, 746051, 50171, 72535, 
75671, 82293, 200119, 746051, 0, 0, 0, 0, 0, 137649, 0, 0, 0, 
0, 0, 137649, 0, 0, 0, 7, 26595, 137649, 39501, 54149, 54192, 
62361, 92355, 137649, 0, 0, 0, 0, 0, 746051, 0, 0, 0, 0, 28991, 
746051, 3909, 63236, 75858, 99751, 341094, 746051, 365996, 462080, 
464957, 488522, 569331, 746051, 0, 0, 0, 0, 0, 137649, 0, 0, 
0, 0, 0, 137649, 0, 1, 2, 110, 8023, 137649, 14720, 18365, 18447, 
21514, 35848, 137649), PWC_cutoff = c(20, 20, 20, 20, 20, 20, 
40, 40, 40, 40, 40, 40, 60, 60, 60, 60, 60, 60, 80, 80, 80, 80, 
80, 80, 20, 20, 20, 20, 20, 20, 40, 40, 40, 40, 40, 40, 60, 60, 
60, 60, 60, 60, 80, 80, 80, 80, 80, 80, 20, 20, 20, 20, 20, 20, 
40, 40, 40, 40, 40, 40, 60, 60, 60, 60, 60, 60, 80, 80, 80, 80, 
80, 80, 20, 20, 20, 20, 20, 20, 40, 40, 40, 40, 40, 40, 60, 60, 
60, 60, 60, 60, 80, 80, 80, 80, 80, 80)), row.names = c(NA, -96L
), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x13783aee0>)
EN

回答 2

Stack Overflow用户

发布于 2022-11-12 15:54:35

正如dww在评论中指出的那样,列名'sum‘混淆了dcast。我将列名更改为sumvals,dcast语句改为

代码语言:javascript
复制
comb_wide <- dcast(comb, scenarios + qName + hemName ~ PWC_cutoff, value.var = "sumvals")
票数 0
EN

Stack Overflow用户

发布于 2022-11-12 15:55:56

我想你需要把最后一个词写在引号里,所以试试这个:

代码语言:javascript
复制
comb_wide <- dcast(comb, scenarios + qName + hemName ~ 
                   PWC_cutoff,value.var = 'sum')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74413748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档