gpt4 book ai didi

如果范围在范围列表内,则返回 TRUE/FALSE R

转载 作者:行者123 更新时间:2023-12-05 01:03:44 25 4
gpt4 key购买 nike

我有一个数字范围

rg <- 25:46

我需要检查该范围内的任何数字是否在一个范围内并返回真/假

lrg <- "1:26,48:56,78:99,121:143,165:204,226:243,265:268,290:316"

我试过的是

for (i in str_split(lrg,',')){ print(noquote(i) %in% rg)}

但这总是返回 FALSE可能我在这里缺少一些简单的东西

最佳答案

这是一个基本的 R 解决方案。

rg <- 25:46
lrg <- "1:26,48:56,78:99,121:143,165:204,226:243,265:268,290:316"

l <- lapply(strsplit(lrg, ",")[[1]], \(x) eval(parse(text=x)))
sapply(l, \(x) any(rg %in% x))
#> [1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

reprex package 创建于 2022-09-07 (v2.0.1)

但要小心,

fortunes::fortune(106)
#>
#> If the answer is parse() you should usually rethink the question.
#> -- Thomas Lumley
#> R-help (February 2005)

reprex package 创建于 2022-09-07 (v2.0.1)

lrg 这样的字符串如何成为现实生活中的问题或问题的一部分?


编辑

灵感来自 yuk's answerr2evans' comment .事实上,我上面的代码重写为管道。

strsplit(lrg, ",") |>
unlist() |>
lapply(\(x) parse(text = x) |> eval()) |>
sapply(\(x) any(rg %in% x))
#> [1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

reprex package 创建于 2022-09-07 (v2.0.1)

关于如果范围在范围列表内,则返回 TRUE/FALSE R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73640861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com