Ваш случай несколько усложняется тем фактом, что ваш m
- это не просто список векторов символов, но, в вашем примере, список из 2 списков из 1 вектора символов, который будет сгенерирован
m = list(strsplit("gghgggkl", ""), strsplit("ghkklg", ""))
Если мы хотим, чтобы myfunction
работал с этой структурой данных, мы должны обратиться к компоненту списков длины-1 с помощью операции [[1]]
(см. x[[1]]
ниже) и, как подсказал Локи, мы можем использовать lapply
для работы со всеми компонентами внешнего списка и sum
с логическим выражением для получения желаемого количества:
myfunction = function(m) lapply(m, function(x) sum(x[[1]]=='g'))
myfunction(m)
результат:
[[1]]
[1] 5
[[2]]
[1] 2