#r #char #extract
#r #символ #извлекать
Вопрос:
Возник вопрос, который, как я думал, должен быть простым, возможно, это просто недостаток знаний о семействе grep ().
Задан набор символов:
list <- c("the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog")
Мы знаем, что sum(nchar(list))
равно 35.
Есть ли способ извлечь все «целые» символьные элементы до заданного места в list
объекте, скажем, до 10, 15 или 20?
Например, если мы сделали 10, он должен извлечь «the» и «quick», но не «brown» (или любой из остальных list
).
Извиняюсь за плохое название — открыто для редактирования!
Ответ №1:
Мы создаем логический индекс с cumsum
для подмножества слов
f1 <- function(vec, n) {
vec[cumsum(nchar(vec)) < n]
}
f1(list, 10)
#[1] "the" "quick"
f1(list, 15)
#[1] "the" "quick" "brown"
Комментарии:
1. Будет принято, как только истечет отведенное время — удивительно быстрый ответ!
2. пока я привлекаю ваше внимание, могу я спросить, как долго вы переходите на R?
3. @ReputableMisnomer, вероятно, из 2006 (как новичок). Но не слишком задумывайтесь о времени первого запуска, потому что я впервые начал с C до этого
4. Всегда интересно взглянуть на путешествие по R / кодированию — я начал только зимой 2016 года — с нетерпением жду конца путешествия и надеюсь достичь вашего уровня! Еще раз приветствую ответ! (приносим извинения за расширенное обсуждение в комментариях)
5. @ReputableMisnomer уверен, вы определенно смогли бы достичь любого уровня . Практика, терпение, чтение и т.д. Являются ключевыми. Я видел многих людей, которые за пару лет так начали и стали отличными программистами, что мне трудно конкурировать : =)