Для моей диссертации MSc я сортирую файл данных в R. В этом файле есть строковые значения, которые не находятся в правильных столбцах.Я пытаюсь упорядочить их или мутировать новые столбцы, где новый столбец принимает только строку, если она соответствует определенному регулярному выражению.Позвольте мне показать вам, что я имею в виду.Для наглядности я сделал следующий фрейм данных.Здесь 4 человека попросили дать свой первый и второй любимый цвет и еду, или только первый, если у них был только один любимый (NA также возможен).Однако из-за какой-то ошибки ответы смешиваются в 4 столбцах.
df <- data.frame(person_ = c("Peter", "Lucas", "Jake", "Harry"),
note1 =c("1. Red", "2. Green", "1. Food: Hamburger", "1. Food: Pizza"),
note2 =c("1. Food: Pasta", "1. Blue", NA, "1. Yellow"),
note3 =c("2. Food: Spaghetti", "2. Food: Chips", "1. Red", NA),
note4 =c("2. Purple", "1. Food: Pancake", "2. White", NA))
Я хотел бы знать, как я могу заказать их.Вы можете распознать первого и второго фаворита по '1.'и' 2.».И вы можете узнать любимую еду по «Еда:».Этот факт сразу заставляет меня думать, что я должен работать с регулярными выражениями.Я подумал об этом и попытался изменить новые столбцы, чтобы значения выбирались из столбцов «note1», «note2», «note3» или «note4» и соответствовали регулярному выражению.Я не справился ....
Для полной ясности, это то, чего я в конечном итоге хочу.
df_1 <- data.frame(person_ = c("Peter", "Lucas", "Jake", "Harry"),
note1 =c("1. Red", "2. Green", "1. Food: Hamburger", "1. Food: Pizza"),
note2 =c("1. Food: Pasta", "1. Blue", NA, "1. Yellow"),
note3 =c("2. Food: Spaghetti", "2. Food: Chips", "1. Red", NA),
note4 =c("2. Purple", "1. Food: Pancake", "2. White", NA),
fav1_color =c("Red", "Blue", "Red", "Yellow"),
fav2_color =c("Purple", "Green", "White", NA),
fav1_food =c("Pasta", "Pancake", "Hamburger", "Pizza"),
fav2_food =c("Spaghetti", "Chips", NA, NA))
У кого-нибудь из вас есть идеи, как решить эту проблему?Заранее спасибо.