gpt4 book ai didi

r - 如何过滤字母数字字符范围?

转载 作者:行者123 更新时间:2023-12-01 22:46:16 24 4
gpt4 key购买 nike

我需要使用 ICD-10 代码创建虚拟变量。例如,第 2 章从 C00 开始到 D48X 结束。数据如下所示:

data <- data.frame(LINHAA1 = c("B342", "C000", "D450", "0985"),
LINHAA2 = c("U071", "C99", "D68X", "J061"),
LINHAA3 = c("D48X", "Y098", "X223", "D640"))

然后我需要创建一个列,如果它在 C00-D48X 范围之间则接收 1,否则接收 0。我想要的结果:

LINHAA1   LINHAA2   LINHAA3  CHAPTER2
B342 U071 D48X 1
C000 C99 Y098 1
D450 D68X X223 1
O985 J061 D640 0

需要经过LINHAA1到LINHAA3。提前致谢!

最佳答案

应该这样做:

as.numeric(apply(apply(data, 1, 
function(x) { x >="C00" & x <= "D48X" }), 2, any))
[1] 1 1 1 0

一点解释:检查代码是否在范围内可以使用字母顺序检查(您可以从 <= 等获得)。内部 apply 检查每个元素并生成一个逻辑值矩阵。外层 apply 使用 any 检查三个逻辑值中的任何一个是否为真。 as.numeric 将结果从 TRUE/False 更改为 1/0。

关于r - 如何过滤字母数字字符范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75277671/

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