Хобрук: Ваш путь к мастерству в программировании

Преобразование столбца типа в несколько отдельных столбцов комментариев с их количеством

У меня есть фрейм данных с 1 столбцом и 1 значением

df <- data.frame(type = c("recommended: 882, meh: 501, exceptional: 283, skip: 185"),
                 stringsAsFactors=FALSE)

Я пытаюсь преобразовать этот type столбец в несколько отдельных столбцов комментариев с их количеством

Мой желаемый результат

recommended meh exceptional skip
        882 501         283  185

Я не могу извлечь число из строки вместо этого.

df %>% mutate(ind = row_number()) %>%
  separate_rows(type, sep=",") %>%
  #mutate(f = ifelse(is.na(f),0, f)) %>%
  count(ind, type) %>%
  spread(type, n, fill = 0) %>%
  as.data.frame()

Может ли кто-нибудь указать мне правильное направление?

04.11.2020

Ответы:


1

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

library(tidyr)
df %>%
  separate_rows(type, sep = ',\\s*') %>%
  separate(type, c('type', 'value'), sep = ':\\s*', convert = TRUE) %>%
  pivot_wider(names_from = type, values_from = value)

#   recommended   meh exceptional  skip
#        <int> <int>       <int> <int>
#1         882   501         283   185
04.11.2020

2

Мы можем использовать base R

v1 <- strsplit(df$type, "[:,]\\s+")[[1]]
out <-  as.data.frame.list(setNames(v1[c(FALSE, TRUE)], v1[c(TRUE, FALSE)]))
type.convert(out, as.is = TRUE)
#   recommended meh exceptional skip
#1         882 501         283  185
04.11.2020
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..