Разделение данных в столбце на основе слова

Есть ли код для создания столбца только с номером скорости? В колонке Cpu, как на картинке, слишком много ненужной для меня информации. Мне нужен только номер «ГГц» (например, 2,3, 1,8 и 2,5).

enter image description here

Пожалуйста, используйте код, а не графику. Вы же не хотите, чтобы каждый помощник делал это сам?!

John Garland 17.05.2022 21:56
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
1
29
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете сделать что-то вроде этого:

library(stringr)

data %>%
  mutate(speed = as.numeric(str_extract(Cpu, "\\d*[.]?\\d+(?=GHz$)")))

Я думаю, что другой ответ лучше, но альтернативный подход к использованию сложного регулярного выражения состоит в том, чтобы извлечь только 3 позиции прямо перед «ГГц» с помощью пакета stringr:

Данные:

df <- data.frame(ScreenResolution = paste("Test",LETTERS[1:3]),
                 Cpu = c("Intel Core i5 2.3GHz","Intel Core i5 1.8GHz",
                         "Intel Core i5 72000U 2.3GHz"),
                 Ram = "8GB")

Код:

library(stringr)
df$Cpu_new <- str_sub(df$Cpu, str_locate(df$Cpu, pattern = "GHz")[1]-4,
                              str_locate(df$Cpu, pattern = "GHz")[1]-1)

Выход:

#   ScreenResolution                         Cpu Ram Cpu_new
# 1           Test A        Intel Core i5 2.3GHz 8GB     2.3
# 2           Test B        Intel Core i5 1.8GHz 8GB     1.8
# 3           Test C Intel Core i5 72000U 2.3GHz 8GB     2.3

Если вы хотите, чтобы он был числовым, используйте as.numeric(str_sub(...))

Немного более простое регулярное выражение:

library(dplyr)
library(stringr)
df %>%
  mutate(CPU_new = str_extract(Cpu, "[0-9.]+(?=GHz)"))

base R:

df$CPU_new <- str_extract(df$Cpu, "[0-9.]+(?=GHz)")

Как это работает:

  • [0-9.]+: класс символов, позволяющий использовать цифры и точку как минимум один или несколько раз.
  • (?=GHz): положительный просмотр вперед, утверждающий, что за совпадением, которое нужно extracted, должна следовать буквальная строка GHz

Другие вопросы по теме