r - 在 R 中捕获字符向量的“内部切片”
问题描述
我有一个字符向量,如下所示:
test <- c(1, 7, 13, 19, 25, 31, 37)
我想返回中间的数字,如下所示:
"2:6" "8:12" "14:18" "20:24" "26:30" "32:36"
我成功地做到了,但它并不像我希望的那样健壮:
rangefunc <- function(x){
paste(x+1, x+5, sep = ":")
}
head(sapply(test, rangefunc))
显然,这是一个可行的解决方案,但对于数字之间的间隔在整个过程中不一致(例如,始终为 6)或间隔只是不同(即,不是 6)的情况,它不是面向未来的。为了处理我的字符向量中的这种潜在情况,我test
如何构造一个比以下更强大的函数:
rangefunc <- function(x){
paste(x+1, x+5, sep = ":")
}
解决方案
paste(head(test, -1) + 1, tail(test, -1) - 1, sep = ':')
# [1] "2:6" "8:12" "14:18" "20:24" "26:30" "32:36"
看起来这个输出可能不是很有用(取决于你为什么想要它)。你可能想要这样的东西
data.frame(start = head(test, -1) + 1
, end = tail(test, -1) - 1)
# start end
# 1 2 6
# 2 8 12
# 3 14 18
# 4 20 24
# 5 26 30
# 6 32 36
推荐阅读
- php - PayPal 最近的 TLS 1.2 / HTTP 1.1 更新以及何时使用
- fabricjs - FabricJs 在不使用 canvas.toJSON() 的情况下加载上一步/当前步骤
- php - 在 Woocommerce 中处理产品级别的产品尺寸单元
- xml - 如何更改 xml 文件的结构格式?
- python - python3 requirements.txt 文件显示不需要的包
- php - 我的 php 代码没有打印任何消息
- firefox-addon-webextensions - 如何使用 webext API 在 FF 61 中设置标题
- javascript - 在 react-native 中更新 return() 中的变量
- javascript - 如何在 js 文件中设置变量并将其包含到用户脚本中
- android - 从一侧动画图像