Я работаю с фреймом данных, подобным приведенному ниже отрывку:
df <- data.frame(A=c("Some messy string to be used",222,0),
B=c("Very important ? indicator from 2001", 888, 44),
C=c("001 This variable / makes no sense", 888, 44),
D=c("Geography", 1, 2))
Я хотел бы использовать значения в первой строке в качестве имен столбцов, я использую код ниже:
names(df) <- make.names(df[1,])
К сожалению, синтаксис генерирует имена в формате Xn, как показано ниже:
> names(df)
[1] "X3" "X3" "X1" "X3"
Я понимаю, что используемые строки слишком беспорядочны для осмысленного преобразования make.names
. Как заставить R использовать эти беспорядочные строки более эффективно? Как правило, я хотел бы:
- Сохраняйте цифры (поскольку они соответствуют времени)
- Сохраните хотя бы несколько первых слов из текста
- Убедитесь, что имена уникальны
- Все решение должно быть довольно общим, так как в первой строке много мусора (обычно пустых мест или специальных символов).
unlist
, то естьmake.names(unlist(df[1,]))
Причина, по которой вы получилиX1:X5
, заключается в том, чтоdf
столбцы равныfactor
, и вы получили числовой индекс после принуждения, который позже был преобразован путем добавленияX
сmake.unique
- person akrun   schedule 21.07.2015