提取一个字符向量中的所有最大长度值中的R
我已经做了功能,这基本上输出多个长度的字符串,即,例如,提取一个字符向量中的所有最大长度值中的R
"110110" "110" "101" "011"
现在,我分配函数的输出在变量a,
a<- c("110110", "110", "101", "011")
a的类出来是字符。现在,我只想要那些长度最长的字符串。例如,在这个例子中,最大长度是“110110”。所以,我想要那个。我试过使用max命令,但是如果有多个,它只返回一个最大长度的字符串。例如,在这些字符串中,
a <- c("110", "101", "abc", "cab")
使用max命令仅返回“cab”。但是,我想要所有的最大长度字符串。我该怎么做?
要衡量字符串的“长度”,你必须使用类似nchar
的东西。如果您想要所有具有最大字符数的元素,您可以使用nchar(a)==max(nchar(a))
进行过滤。下面的代码应该做你正在做的事情:
a <- c("110", "101", "abc", "cab")
a[nchar(a)==max(nchar(a))]
[1] "110" "101" "abc" "cab"
嗨。对不起,但是,因为它是一个函数的输出,所以我会执行它。所以,在某些地方,函数返回''“'',即NULL。在这些地方,这段代码显示了一条警告消息:In max(nchar(a)):没有非缺少的参数为max;返回-Inf'。如何解决这些问题? – Qirohchan 2014-09-23 17:38:21
@Qin当所有元素都是NULL并且它只是一个警告时,会发生这种情况,您可以在这些情况下忽略它,并且结果也是正确的,也是一个NULL向量。 – 2014-09-23 17:43:21
@Qin你也可以用'nzchar'去除零长度条目。或者在函数中,你可以包括行if(any(nzchar(x)))x 2014-09-23 18:43:55
只是让我说'a 2017-06-01 08:24:15