如何在 R 中展开连字符和逗号分隔的数字范围?例如 1,3,5-7 -> 1,3,5,6,7 位于不同行

Nei*_*l P 3 r range hyphenation

大家好,我想知道是否有人可以帮助我解决一些让我在 R 开始时陷入困境的事情?与这篇文章类似 ,但在 R 中

本质上与 R.utils 函数 seqToHumanReadable 相反。

标题 低层燃料电池 红色的
A 15, 18 11.65
16 和 19 9.08
C 112-114 6.45
d 113-115,145-147 6.45

会成为:

标题 低层燃料电池 红色的
A 15 11.65
A 18 11.65
16 9.08
19 9.08
C 112 6.45
C 113 6.45
C 114 6.45
d 113 6.45
d 114 6.45
d 115 6.45
d 145 6.45
d 146 6.45
d 147 6.45

预先非常感谢您的帮助!

我开始尝试使用 if,计算出每个连字符的数字之间的差异,并通过一个循环运行多次,试图添加额外的行,但陷入了可怕的混乱。

编辑:哇非常感谢大家的回复。解决了我的问题,并给了我更多的阅读内容!

Sot*_*tos 6

看起来有点麻烦,但它会返回您的预期输出:

\n
library(dplyr)\n\ndf %>% \n mutate(LLFCs = gsub('-', ':', LLFCs)) %>% \n separate_rows(LLFCs, sep = ',') %>% \n rowwise() %>% \n mutate(LLFCs = ifelse(grepl(':', LLFCs), toString(eval(parse(text = LLFCs))), LLFCs)) %>% \n separate_rows(LLFCs)\n\n# A tibble: 13 \xc3\x97 3\n   Title LLFCs   Red\n   <chr> <chr> <dbl>\n 1 a     15    11.6 \n 2 a     18    11.6 \n 3 b     16     9.08\n 4 b     19     9.08\n 5 c     112    6.45\n 6 c     113    6.45\n 7 c     114    6.45\n 8 d     113    6.45\n 9 d     114    6.45\n10 d     115    6.45\n11 d     145    6.45\n12 d     146    6.45\n13 d     147    6.45\n
Run Code Online (Sandbox Code Playgroud)\n