You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中筛选指定长度字符串:如何精准获取长度为20的字符串?

精准筛选R语言中恰好20个字符的字符串

嘿,这个需求其实很简单,核心就是用nchar()函数精准匹配字符数就行,我给你拆解几种常用场景:

1. 针对字符串向量的基础筛选

nchar()函数会返回每个字符串的字符长度,你只需要把之前用的<=20判断条件改成==20,就能精准揪出恰好20个字符的字符串。

举个实际例子:

# 先造个测试用的字符串向量
my_strings <- c("短字符串", "this_is_15_characters", "exactly_twenty_chars_here", "way_longer_than_twenty_chars")

# 执行筛选
filtered_strings <- my_strings[nchar(my_strings) == 20]

# 看看结果
print(filtered_strings)
# 输出:[1] "exactly_twenty_chars_here"

2. 针对数据框的筛选(用dplyr)

如果你是在数据框里处理列数据,用dplyr的filter()函数配合nchar()一样能轻松搞定:

library(dplyr)

# 测试数据框
text_df <- tibble(content = c("abc", stringi::stri_rand_strings(3, 20), "超长字符串肯定超过20个字符啦"))

# 筛选content列恰好20字符的行
filtered_df <- text_df %>% filter(nchar(content) == 20)

小提醒:多字节字符的特殊情况

如果你的字符串里包含中文、emoji这类多字节字符,nchar()默认是按字符数统计的(比如一个中文算1个字符)。要是你需要按字节数判断,记得加type="bytes"参数:

# 按字节数判断(比如中文在UTF-8下占3字节)
my_chinese_strings <- c("我是10个中文刚好30字节", "我是6个中文加2个字母共20字节")
filtered_by_bytes <- my_chinese_strings[nchar(my_chinese_strings, type="bytes") == 20]

内容的提问来源于stack exchange,提问作者val

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:12:25