相关疑难解决方法(0)

将数字向量作为字符串汇总的功能?

假设我有以下数字向量:

vec = c(1, 2, 3, 5, 7, 8, 9, 10, 11, 12)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个函数,它将创建一个字符串,以人类的方式总结数字列表,即

"1-3, 5, 7-12"
Run Code Online (Sandbox Code Playgroud)

我怎么能在R中这样做?

r

20
推荐指数
3
解决办法
842
查看次数

使用R编码序列长度

有没有办法在R中编码增加的整数序列,类似于使用行程编码(rle)编码运行长度?

我将举例说明:

类比:行程编码

r <- c(rep(1, 4), 2, 3, 4, rep(5, 5))
rle(r)
Run Length Encoding
  lengths: int [1:5] 4 1 1 1 5
  values : num [1:5] 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

期望:序列长度编码

s <- c(1:4, rep(5, 4), 6:9)
s
[1] 1 2 3 4 5 5 5 5 6 7 8 9

somefunction(s)
Sequence lengths
  lengths: int [1:4] 5 1 1 5
  value1 : num [1:4] 1 5 5 5
Run Code Online (Sandbox Code Playgroud)

编辑1

因此,somefunction(1:10)将给出结果: …

encoding r

14
推荐指数
2
解决办法
2925
查看次数

将连续数字的运行折叠到范围内

考虑以下以逗号分隔的数字字符串:

s <- "1,2,3,4,8,9,14,15,16,19"
s
# [1] "1,2,3,4,8,9,14,15,16,19"
Run Code Online (Sandbox Code Playgroud)

是否可以将连续数字的运行折叠到其相应的范围内,例如1,2,3,4上面的运行将折叠到范围内1-4。所需的结果类似于以下字符串:

s
# [1] "1-4,8,9,14-16,19"
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
998
查看次数

R中的顺序引用编号:连字符分隔数字,如果是连续的 - 如果没有则添加逗号

我想为R中的数字生成连续引用数字.如果数字是连续的,则数字应用连字符分隔.否则数字用逗号分隔.例如,数字1, 2, 3, 5, 6, 8, 9, 10, 11 and 13应该是1-3,5,6,8-11,13.

这个问题之前已经回答过c#,我编写了一个适用于R的函数,但是这个函数可以改进.我发布此问题作为其他可能有类似需求的参考.如果您发现R的类似问题(我没有),请投票结束,我将删除该问题.

下面的功能不是很优雅,但似乎可以完成这项工作.如何使功能更短更优雅?

x <- c(1,2,3,5,6,8,9,10,11,13)

library(zoo) ## the function requires zoo::na.approx function 

##' @title Generate hyphenated sequential citation from an integer vector
##' @param x integer vector giving citation or page numbers
##' @importFrom zoo na.approx

seq.citation <- function(x) {

## Result if lenght of the integer vector is 1. 
if(length(x) == 1) return(x) else {

## Sort
x <- …
Run Code Online (Sandbox Code Playgroud)

algorithm r sequence

4
推荐指数
3
解决办法
145
查看次数

将数字向量拆分为R中的连续块

如果我有一个数字向量[1 2 3 4 7 8 9 10 15 16 17],我该如何拆分它以便我返回多个向量来分隔该向量的连续元素?即[1 2 3 4] [7 8 9 10] [15 16 17].我在matlab中找到了如何做到这一点的答案,但我只使用了R.

谢谢.

r vector

2
推荐指数
1
解决办法
1467
查看次数

标签 统计

r ×5

algorithm ×1

encoding ×1

sequence ×1

vector ×1