GOOGLE ADS

понедельник, 9 мая 2022 г.

Создайте и примените функцию, которая вычисляет длину множества строк в векторе.

Предположим, у меня есть длинный вектор с символами, который более или менее похож на этот:

vec <- c("32, 25", "5", "15, 24")

Я хочу применить функцию, которая дает мне количество строк для любого элемента, разделенного запятой, и возвращает мне вектор любой индивидуальной длины. Используя lapplyи мой игрушечный вектор, это мой подход:

lapply(vec, function(x) {
a <- strsplit(x, ",")
y <- length(a[[1:length(a)]])
unlist(y[1:length(y)])
})
[[1]]
[1] 2
[[2]]
[1] 1
[[3]]
[1] 2

Это почти дает мне то, что я хочу, поскольку первый элемент имеет 2 строки, второй элемент 1 строку и третий элемент 2 строки. Проблема в том, что я не могу добиться, чтобы моя функция возвращала мне вектор формы c(2,1,2)., которую я использую для создания новой переменной для некоторых, с data.frameкоторыми я работаю. Любая идея будет высоко оценена.


Решение проблемы

Вы можете сделать:

stringr::str_count(vec, ",") + 1
#> [1] 2 1 2

Или в базе R:

nchar(gsub("[^,]", "", vec)) + 1
#> [1] 2 1 2

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...