如何同时使用startsWith和str_length和R中的多个前缀

问题描述 投票:1回答:1

我想使用startsWith和str_length来标识endpt_ds $ DX1中的条目,这些条目以dx9中的字符串开头,并且前缀的长度大于或等于3。这是我尝试过的,但是返回零行的数据框。我希望它返回一个具有原始数据帧的第一,第四和第五行的数据帧:

dx9 = c(as.character(8:10))
DX1 <- c("8001","7","80","992","1010","93","400")
ind <- c(0,1,1,1,0,0,1)
yrMonth_ds = as.data.frame(cbind(DX1,ind))
yrMonth_ds$DX1 <- as.character(yrMonth_ds$DX1)
yrMonth_ds_endpt <- yrMonth_ds[which(startsWith(yrMonth_ds$DX1,paste0(dx9,collapse="|")) & str_length(yrMonth_ds$DX1 > 3)),]
yrMonth_ds_endpt

非常感谢您的帮助。谢谢!

r prefix string-length startswith
1个回答
0
投票

[一种选择是用nchar检查字符数,并以此创建一个逻辑表达式,另外在'dx9'上使用paste,将其折叠为一个带有^的单个模式字符串以指定开始字符串,并使用grepl与“ DX1”进行检查,以返回通过两个逻辑传递的行

© www.soinside.com 2019 - 2024. All rights reserved.