R 截取割函数后因子的边

R 截取割函数后因子的边,r,R,当我把一个向量除以另一个向量时,我会得到很多像这样的因子:0100],100200],等等。有没有办法得到这些因子中的一个,然后取上界或下界 例如:对于100200]我想要一些方法来获得100和200 编辑: 当给定v[1]时,我想用某种方法得到数字1和4。这太模糊了。你需要用一个例子和一些实际的代码来更全面地解释。@joran如果我不清楚,很抱歉。我的编辑有帮助吗?是的,很大的改进,谢谢。这太模糊了。你需要用一个例子和一些实际的代码来更全面地解释。@joran如果我不清楚,很抱歉。我的编辑有帮

当我把一个向量除以另一个向量时,我会得到很多像这样的因子:0100],100200],等等。有没有办法得到这些因子中的一个,然后取上界或下界

例如:对于100200]我想要一些方法来获得100和200

编辑:


当给定v[1]时,我想用某种方法得到数字1和4。

这太模糊了。你需要用一个例子和一些实际的代码来更全面地解释。@joran如果我不清楚,很抱歉。我的编辑有帮助吗?是的,很大的改进,谢谢。这太模糊了。你需要用一个例子和一些实际的代码来更全面地解释。@joran如果我不清楚,很抱歉。我的编辑有帮助吗?是的,很大的改进,谢谢。我想知道是否有一种方法可以直接用findInterval来做这件事,但是我在处理区间端点时遇到了问题。处理级别时的问题是无法知道哪个级别标签与第一个值关联。@DWin这只是展示了如何从该类型的字符串转换为数字,如果OP希望转换级别以外的内容,他们可以插上插头in@joran你的意思是tmp@joran Well,cutc3,4,6,8,c1,4,5,9,12,labels=seq_alongc1,4,5,9,12[-1]可以使用。我想知道是否有一种方法可以直接用findInterval实现这一点,但是我在处理区间端点时遇到了问题。处理级别时的问题是无法知道哪个级别标签与第一个值关联。@DWin这只是展示了如何从该类型的字符串转换为数字,如果OP希望转换级别以外的内容,他们可以插上插头in@joran你的意思是tmp@joran Well,cutc3,4,6,8,c1,4,5,9,12,labels=seq_alongc1,4,5,9,12[-1]可以使用。你能解释一下为什么这样做吗?我看了gsub的文档,但还是不明白。我能告诉你的是,你正在删除字符串中不是1或4的部分,并用空字符串替换它们。但是,左边的所有符号是如何对应一个因子中的符号的呢。|运算符是逻辑OR,[,]和之前的双反斜杠是转义操作。这是必需的,因为当您使用R字符约定时,转义符\需要在正则表达式模式内转义。这有点奇怪,因为你只需要在'pattern'参数中使用它们,而不需要在'sub'参数中使用它们。你能解释一下为什么这样做吗?我看了gsub的文档,但还是不明白。我能告诉你的是,你正在删除字符串中不是1或4的部分,并用空字符串替换它们。但是,左边的所有符号是如何对应一个因子中的符号的呢。|运算符是逻辑OR,[,]和之前的双反斜杠是转义操作。这是必需的,因为当您使用R字符约定时,转义符\需要在正则表达式模式内转义。这有点奇怪,因为您只需要在“pattern”参数中使用它们,而不需要在“sub”参数中使用它们。
v <- cut(c(3,4,6,8), c(1,4,5,9,12))
levels(v)
#[1] "(1,4]"  "(4,5]"  "(5,9]"  "(9,12]"

as.numeric(sub('.([^,]+),.*', '\\1', levels(v)))
#[1] 1 4 5 9

as.numeric(sub('.*,(.*).', '\\1', levels(v)))
#[1]  4  5  9 12
v <- cut(c(3,4,6,8), c(1,4,5,9,12))
levels(v)
#[1] "(1,4]"  "(4,5]"  "(5,9]"  "(9,12]"

as.numeric(sub('.([^,]+),.*', '\\1', levels(v)))
#[1] 1 4 5 9

as.numeric(sub('.*,(.*).', '\\1', levels(v)))
#[1]  4  5  9 12
strsplit(gsub("\\[|\\]|\\(", "", as.character(v[1]) ) , ",")[[1]]

#[1] "1" "4"