Я новичок в r, и мне нужно подсчитать значения в столбце, разделенном «:».Считать значения в столбцах, разделенных символом «:»
В наборе данных есть 4 категории, и мне приходится подсчитывать количество действий для каждой категории. Каждый log_id представляет собой уникальное действие в категории. Если для одного log_id есть 2 или более категории, это означает, что это конкретное действие будет учитываться во всех упомянутых категориях.
Данные выглядят как этот
user_id log_id categories
001 1334 Perform:Sport_Well:Com.Tent
001 1323 Com.Tent
001 1212 Active
002 1113 NA
002 1478 Com.Tent:Active
002 1134 Sport_Well:Perform
002 1256 Perform
002 1590 Perform
002 1345 NA
002 1478 Com.Tent
002 1134 Sport_Well:Perform
002 1256 Perform
003 1590 Perform
003 1345 Active:Perform
003 1190 Perform:Com.Tent
003 1239 Active:Perform
Вот dput
:
dat <- structure(list(user_id = c("001", "001", "001", "002", "002",
"002", "002", "002", "002", "002", "002", "002", "003", "003",
"003", "003"), log_id = c("1334", "1323", "1212", "1113", "1478",
"1134", "1256", "1590", "1345", "1478", "1134", "1256", "1590",
"1345", "1190", "1239"), categories = c("Perform:Sport_Well:Com.Tent",
"Com.Tent", "Active", NA, "Com.Tent:Active", "Sport_Well:Perform",
"Perform", "Perform", NA, "Com.Tent", "Sport_Well:Perform", "Perform",
"Perform", "Active:Perform", "Perform:Com.Tent", "Active:Perform")),
.Names = c("user_id", "log_id", "categories"), class = "data.frame", row.names = c(NA, -16L))
Нужный выход ниже:
user_id category NumActions
001 Perform 1
001 Sport_Well 1
001 Com.Tent 2
001 Active 1
002 Com.Tent 2
002 Active 1
002 Perform 5
002 Sport_Well 2
003 Com.Tent 2
003 Active 2
003 Perform 4
Я пытаюсь разделить категории, но не могу понять как подсчитывать log_ids с несколькими категориями.
df$cate = str_split(string = df$Ch_Category, pattern = ":")
Спасибо @mso, но мне нужно объединить отдельные категории. –
Я отредактировал свой ответ выше. – rnso