Вы можете использовать gregexp()
, чтобы вернуть вектор позиций запятой (ей) в каждой строке. Затем вы можете применить функцию length()
для подсчета запятых:
sapply(gregexpr(",", df$cars), length)
## 2 1 1 3
Чтобы ответить на точный заданный вопрос, просто оберните указанную выше строку кода в max()
, чтобы определить максимальное количество раззапятая появилась в одной из ваших строк.
Выше фактически возвращает «1», когда ожидается «0». Возможно, есть более элегантное решение, но вот функция, которая будет правильно обрабатывать нули:
count_commas <- function(x) {
y <- sapply(gregexpr(",", x), as.integer) # get position of commas
y <- lapply(y, function(y) if(y[1] == -1) NULL else y) # replace zeros
return( sapply(y, length) ) # return count of commas
}
count_commas(df$cars)
# 2 0 1 3