首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RMD循环内图

RMD循环内图
EN

Stack Overflow用户
提问于 2022-06-27 06:49:41
回答 1查看 28关注 0票数 1

我不理解使用pivot_longer的一些基本内容。让我分享我的结果。这里有张桌子。温度指标都是双倍的。

代码语言:javascript
复制
device_id   < 12°C  < 16°C  < 18°C  < 21°C  > 21°C
412222  0   0.355   0.645   0.000   0.000
C000037 0   0.000   0.048   0.539   0.412
P000000 0   0.000   0.105   0.620   0.275
W000043 0   0.000   0.057   0.562   0.380
W000069 0   0.359   0.641   0.000   0.000
W000075 0   0.000   0.036   0.521   0.443

以及dput()的输出,希望这将允许您重新构建。

代码语言:javascript
复制
structure(list(device_id = c("412222", "C000037", "P000000", 
"W000043", "W000069", "W000075"), `< 12°C` = c(0, 0, 0, 0, 0, 
0), `< 16°C` = c(0.355, 0, 0, 0, 0.359, 0), `< 18°C` = c(0.645, 
0.048, 0.105, 0.057, 0.641, 0.036), `< 21°C` = c(0, 0.539, 0.62, 
0.562, 0, 0.521), `> 21°C` = c(0, 0.412, 0.275, 0.38, 0, 0.443
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-6L))

下面的代码不符合我的预期:

代码语言:javascript
复制
temp <- 
  risk_by_device %>%
  tidyr::pivot_longer(
    cols = c(select(., contains("°C")), na.rm = TRUE),
    names_to = "Score",
    values_to = "percentage"
)


Error in `as_indices_impl()`:
! Must subset columns with a valid subscript vector.
x Subscript has the wrong type `tbl_df<
  < 12°C: double
  < 16°C: double
  < 18°C: double
  < 21°C: double
  > 21°C: double
>`.
i It must be numeric or character.
Backtrace:
  1. risk_by_device %>% ...
 23. rlang::cnd_signal(x)
 Error in as_indices_impl(x, vars, call = call, strict = strict) :

我在带有字符串的daa集合上运行了非常类似的代码。这并不是说pivot_longer不适用于双打,对吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-27 08:22:04

根据tidyr参数的帮助文件,cols采用“将列转换为更长的格式”。因此,代码中的4.行是简单的

代码语言:javascript
复制
cols = contains("°C"),

你可以用长格式获取数据。由于您希望将所有列( id-col除外)枢轴,所以您也可以指定

代码语言:javascript
复制
cols = -device_id,

甚至更短

代码语言:javascript
复制
cols = -1,
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72767966

复制
相关文章

相似问题

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