I would like to find and extract the longest word of a string, if possible using a tidyverse
package.
library(tidyverse)
tbl <- tibble(a=c("ab cde", "bcde f", "cde fg"), b=c("cde", "bcde", "cde"))
tbl
# A tibble: 3 x 1
a
<chr>
1 ab cde
2 bcde f
3 cde fg
The result I am looking for is:
# A tibble: 3 x 2
a b
<chr> <chr>
1 ab cde cde
2 bcde f bcde
3 cde fg cde
The closest post to the question I have found is this: longest word in a string. Does anyone have an idea for an even simpler way?
function findLongestWord(str) { var longestWord = str. split(' '). reduce(function(longest, currentWord) { return currentWord. length > longest.
Use max python built-in function, using as key parameter the len function. It would iterate over word_list applying len function and then returning the longest one.
To find the smallest and largest word, we will find the length of each word by using two indexes, one for the start of the word and one for the ending which is marked using the ' ' (space character) or '\0' character. Then using the start and end index, we will find the maxLength and minlength.
Solution using base R:
# Using OPs provided data
tbl$b <- sapply(strsplit(tbl$a, " "), function(x) x[which.max(nchar(x))])
Explanation:
strsplit
)nchar
)which.max
)If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With