У меня есть dataframe, который содержит 3 столбца. Один из столбцов (элементов) включает в себя длинные строки (некоторые включают специальные символы, такие как точка с запятой, для простоты здесь написано как Tx), которые могут повторяться. Я хотел бы найти все уникальные значения конкретного столбца. Для каждого уникального значения для создания псевдонима в следующем формате: OV1, OV2, ... OVn. Я хотел бы сохранить эту таблицу и назвать ее «таблицей трансформации». На следующем шаге я хотел бы перейти в исходную таблицу и перекопировать каждое значение со значением в таблице преобразования.Перекодирование данных из таблицы трансформации
Ниже приведен пример для исходной таблицы:
items sequenceID eventID SIZE
1: T1 41595370 1 1
2: T2 41595371 1 1
3: T3 41595282 1 1
4: T3 41595282 2 1
5: T4 41595373 1 1
6: T5 41595368 1 1
7: T1 41595379 1 1
В таблице результат был бы:
items sequenceID eventID SIZE
1: OV1 41595370 1 1
2: OV2 41595371 1 1
3: OV3 41595282 1 1
4: OV3 41595282 2 1
5: OV4 41595373 1 1
6: OV5 41595368 1 1
7: OV1 41595379 1 1
В таблице преобразования будет:
1: T1 OV1
2: T2 OV2
3: T3 OV3
4: T4 OV4
5: T5 OV5
Данные источника в data6
(dataframe). Я использовал следующие приказы:
u1 <- unique(data6$items)
u1 <- data.frame(u1)
ov <- c(paste("ov",1:nrow(u1),sep=""))
Я бы сейчас, чтобы заменить все столбцы уникальных предметов, которая находится в u1
с OV
значений и создать это в виде таблицы преобразования. Затем замените все значения в data6$items
.
Большое спасибо за помощь.
Большое спасибо. Кажется, команда работает. Однако, если я хотел бы изменить значения OV (новые значения) в следующем формате: OV1, OV2 и т. Д. Что мне нужно изменить в команде? и, кроме того, я получаю следующее предупреждение: - Почему? - Предупреждающее сообщение: В 'levels <-' (' * tmp * ', value = if (nl == nL) as.character (метки) else paste0 (метки: дублированные уровни в факторах устарели – Avi
Я получаю Следующий после выполнения команды: элементов sequenceID коды события РАЗМЕРА 1: OV4CC 41595370 1 1 2: OVFCD 41595371 1 1 3: OV6A6 41595282 1 1 4: OV6A6 41595282 2 1 5: OV49A 41595373 1 1 6: OV990 41595368 1 1 – Avi
Я изменил код, теперь уровни вновь созданной переменной OV1..OVn. Я не получаю никаких предупреждающих сообщений, используя ваши данные, возможно, вам нужно сначала определить переменную as.character(). – MarkusN