我的数据表comb (下面的dput输出)具有下面的结构。我想把它扔成这样
comb_wide <- dcast(comb, scenarios + qName + hemName ~ PWC_cutoff, value.var = sum)R返回此错误消息。
Error in setattr(ans, "names", c(lhsnames, allcols)) :
'names' attribute [7] must be the same length as the vector [3]我不知道属性7和向量3指的是什么。
> 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输出
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>)发布于 2022-11-12 15:54:35
正如dww在评论中指出的那样,列名'sum‘混淆了dcast。我将列名更改为sumvals,dcast语句改为
comb_wide <- dcast(comb, scenarios + qName + hemName ~ PWC_cutoff, value.var = "sumvals")发布于 2022-11-12 15:55:56
我想你需要把最后一个词写在引号里,所以试试这个:
comb_wide <- dcast(comb, scenarios + qName + hemName ~
PWC_cutoff,value.var = 'sum')https://stackoverflow.com/questions/74413748
复制相似问题