提取R中字符向量中的所有最大长度值

Qir*_*han 8 string select r max

我已经创建了一个函数,它基本上输出多个长度字符串,例如,

"110110" "110"    "101"    "011" 
Run Code Online (Sandbox Code Playgroud)

现在,我在变量a中分配了函数的输出,

a<- c("110110", "110",   "101",    "011")
Run Code Online (Sandbox Code Playgroud)

a的类出来是个性.现在,我只想要那些具有最大长度的字符串.例如,在该示例中,最大长度为"110110".所以,我想要那个.我尝试使用max命令,但如果有多个,则只返回一个最大长度字符串.例如,在这些字符串中,

a <- c("110", "101", "abc", "cab")
Run Code Online (Sandbox Code Playgroud)

使用max命令仅返回"cab".但是,我想要所有最大长度的字符串.我该怎么做?

Car*_*lli 11

要测量字符串的"长度",你必须使用类似的东西nchar.如果您希望所有具有最大字符数的元素都可以过滤nchar(a)==max(nchar(a)).以下代码应该执行您要执行的操作:

a <- c("110", "101", "abc", "cab")

a[nchar(a)==max(nchar(a))]
[1] "110" "101" "abc" "cab"
Run Code Online (Sandbox Code Playgroud)