Как выбрать самую длинную строку из каждого вектора строк в списке векторов? - PullRequest
0 голосов
/ 26 октября 2019

У меня есть список векторов, которые содержат строки, и я пытаюсь получить список векторов, которые содержат только одну самую длинную строку в каждом векторе.

Пример:

Что у меня есть:

    [[1]]
    [1] "The quick brown fox"
    [2] "jumps over the"
    [3] "lazy dog"

    [[2]]
    [1] "She's a grand old flag"
    [2] "She's a high-flying flag"
    [3] "And forever in peace may she wave"

Что я хочу:

    [[1]]
    [1] "The quick brown fox"

    [[2]]
    [1] "And forever in peace may she wave"

Я пробовал несколько комбинаций sapply и nchar, но не могу понять это. Я думаю, что мне может понадобиться написать какой-то цикл? Я очень плохо знаком с R, поэтому любой совет будет отличным подспорьем. Спасибо.

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Вы можете попробовать:

lapply(lst, function(x) x[which.max(nchar(x))])

[[1]]
[1] "The quick brown fox"

[[2]]
[1] "And forever in peace may she wave"
0 голосов
/ 27 октября 2019

Ниже будут рассмотрены случаи, когда две строки имеют одинаковую длину и максимальную длину:

lapply(yourList, function(x) x[nchar(x)==max(nchar(x))])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...