Как мне сгенерировать новый набор значений из существующего набора данных? - PullRequest
0 голосов
/ 07 мая 2018

Это очень широкий вопрос, но я надеюсь, что кто-нибудь может помочь мне с этой проблемой.

У меня есть один большой набор данных, и мне нужно сгенерировать несколько примеров из него. Сгенерированные данные должны содержать значения, которые могли бы появиться в исходном наборе данных (не случайные, а значения, которые все еще имеют некоторый смысл на основе исходного набора) . Например:

Original Data Set

Vendor       |  Category      |  Problem Category      | Initial Detection Date | Action Date          | Affected Devices    |  Engineer | Type of Analysis | Priority

M-Operations |  Cybersecurity |  Bad security policies |   09/11/2017 12:00AM   |   09/11/2017 3:00AM  | Third party devices | John O.   | Hourly Analysis  | P1 
M-Operations |  Cybersecurity |  Penetration breach    |   09/11/2017 12:00AM   |   09/12/2017 3:00AM  | Third party devices | Samuel P. | Daily Analysis   | P2
Secure Total |  CERT          |  Bad security policies |   09/13/2017 12:00AM   |   09/13/2017 3:00AM  | Main frames         | Samuel P. | Hourly Analysis  | P1


New Data Set

Vendor       |  Category      |  Problem Category      | Initial Detection Date | Action Date          | Affected Devices    |  Engineer | Type of Analysis | Priority

M-Operations |  Cybersecurity |  Penetration breach    |   09/20/2017 12:00AM   |   09/21/2017 3:00AM  | Main frames    | John P.   | Hourly Analysis  | P1 
M-Operations |  CERT          |  Bad security policies |   09/23/2017 12:00AM   |   09/23/2017 3:00AM  | Mobile devices | Samuel P. | Daily Analysis   | P3
Secure Total |  CERT          |  Bad security policies |   09/29/2017 12:00AM   |   09/30/2017 3:00AM  | Main frames    | John P.   | Hourly Analysis  | P2

Я нашел следующую ссылку Создание данных с использованием существующего набора данных , который похож на мою проблему, но в этом случае все значения были числовыми, тогда как в моем примере некоторые из моих значений не числовые. Если бы кто-нибудь мог дать мне пример того, как сгенерировать этот новый набор данных в Python или R, был бы очень признателен за мое внутреннее спокойствие.

1 Ответ

0 голосов
/ 07 мая 2018

Вот как вы можете сделать это в R

# Create dataframe
original <- data.frame(Vendor = c("M-Operations", "M-Operations", "Secure Total"), 
                       Category = c("Cybersecurity", "CERT", "CERT"),
                       Problem = c("Bad", "Good", "Good"))

# Create a list of all unique values in each column
l <- list(
  Vendor <- unique(original$Vendor), 
  Category <- unique(original$Category), 
  Problem <- unique(original$Problem))

# Find all possible permutations
new.data <- do.call(expand.grid, l)

# assign names to the new dataset
names(new.data) <- c("Vendor", "Category", "Problem")
new.data
#         Vendor      Category Problem
# 1 M-Operations Cybersecurity     Bad
# 2 Secure Total Cybersecurity     Bad
# 3 M-Operations          CERT     Bad
# 4 Secure Total          CERT     Bad
# 5 M-Operations Cybersecurity    Good
# 6 Secure Total Cybersecurity    Good
# 7 M-Operations          CERT    Good
# 8 Secure Total          CERT    Good

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

...