gpt4 book ai didi

r - R 中将数字与以空格分隔的字符匹配

转载 作者:行者123 更新时间:2023-12-02 18:45:25 25 4
gpt4 key购买 nike

我有一个像这样的数据框:

| X | Y 
----------
| 8 | 8 13
| 1 | 8 13
| 5 | 8 13
| 13 | 8 13
| 3 | 8 13
| 14 | 7
| 14 |

Col X 为整数格式。 Col Y 为字符格式,数字之间用空格分隔。此列可以包含 1 个数字(一位数或两位数),最多 20 个数字,所有数字均以空格分隔,也可以为空白。

我希望将 X 列中的数字与 Y 列中的任何数字相匹配,如下所示:

| X  | Y    | FLAG
---------------
| 8 | 8 13 | Yes <-- 8 is a match
| 1 | 8 13 | No <-- Even though 1 appears in Col Y, it is technically number 13
| 5 | 8 13 | No
| 13 | 8 13 | Yes
| 3 | 8 13 | No <-- Even though 3 appears in Col Y, it is technically number 13
| 14 | 7 | No
| 14 | | No

我尝试像这样取消列出号码:

as.numeric(unlist(str_extract_all(data$colY, "[\\.0-9e-]+")

但这只是分隔数字。如何实现这一目标?

最佳答案

strsplit 然后检查该值是否在相应的列表中。我们先重新制作一下数据:

dat <- data.frame(X=c(8L, 1L, 5L, 13L, 3L, 14L),
Y=c("8 13", "8 13", "8 13", "8 13", "8 13", "7"), stringsAsFactors=FALSE)

然后进行比较:

mapply(`%in%`, dat$X, strsplit(dat$Y, "\\s+"))
#[1] TRUE FALSE FALSE TRUE FALSE FALSE

关于r - R 中将数字与以空格分隔的字符匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67512417/

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