Скажет, у меня есть вектор символов, как:R: доступ к последнему подэлементу каждого элемента в списке
x <- c('A__B__Mike','A__Paul','Daniel','A__B__C__Martha','A__John','A__B__C__D__Laura')
Я хочу вектор только имена в последней позиции; Я предполагаю, что я мог сделать это удаление первого куска с помощью регулярных выражений, но сказать, что я хочу использовать strsplit(), чтобы разделить на «__»:
x.list <- strsplit(x, '__')
Как бы я получить доступ к последнему подэлементу (имена) каждого элемент в этом списке? Я знаю только, как это сделать, если я знаю позицию:
sapply(x.list, "[[", 1)
Но как получить доступ к последнему, когда позиция является переменной? Благодаря!
В любом случае, какой был бы самый быстрый способ извлечь имена из x в первую очередь? Что-нибудь быстрее, чем метод strsplit?
Вместо 'sapply', вы можете использовать' mapply' применить на несколько объектов одновременно: 'mapply (\ '[[\', x.list, lengths (x.list)) '. Я думаю, что различные варианты ответа akrun хороши, если вы действительно заботитесь о скорости. – Frank