我想使用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
非常感谢您的帮助。谢谢!
[一种选择是用nchar
检查字符数,并以此创建一个逻辑表达式,另外在'dx9'上使用paste
,将其折叠为一个带有^
的单个模式字符串以指定开始字符串,并使用grepl
与“ DX1”进行检查,以返回通过两个逻辑传递的行