Как лучше всего работать с наборами данных, содержащими специальные символы в именах столбцов в R?

#r #special-characters #data-cleaning

#r #специальные символы #очистка данных

Вопрос:

Я работаю с некоторыми большими наборами данных, которые содержат специальные символы в именах столбцов. Имена столбцов выглядят примерно так: «@c_age1619_da * ((df.возраст gt;= 16) amp; (df.возраст gt; Как лучше всего работать с этими именами? Должен ли я сохранить имена такими, какие они есть, или переименовать их в более удобные для R имена? Когда я вызываю их в таких случаях, как значение df$, R ошибочно интерпретирует имя столбца как функцию!

Комментарии:

1. Я бы рекомендовал удалить их или переименовать. Возможно, есть также изменения в процессе импорта данных, которые можно внести. Если вы не знакомы r , код для выполнения каждого names(yourdata) lt;- NULL из них или names(df1) lt;- c("col1", "col2", "col3")

Ответ №1:

Единственное преимущество сохранения нестандартных имен заключается в том, если вы хотите использовать их в качестве меток на графике или в таблице или в чем-то еще. Но это очень затруднит работу с данными, и эти имена могут быть повторно введены в качестве меток позже. Вы можете использовать нестандартные имена, помещая их в обратные ссылки, например,

 df
 #r #special-characters #data-cleaning

 #r #специальные символы #очистка данных

Вопрос:

Я работаю с некоторыми большими наборами данных, которые содержат специальные символы в именах столбцов. Имена столбцов выглядят примерно так: "@c_age1619_da * ((df.возраст gt;= 16) amp; (df.возраст gt; Как лучше всего работать с этими именами? Должен ли я сохранить имена такими, какие они есть, или переименовать их в более удобные для R имена? Когда я вызываю их в таких случаях, как значение df$, R ошибочно интерпретирует имя столбца как функцию!

Комментарии:

1. Я бы рекомендовал удалить их или переименовать. Возможно, есть также изменения в процессе импорта данных, которые можно внести. Если вы не знакомы r , код для выполнения каждого names(yourdata) lt;- NULL из них или names(df1) lt;- c("col1", "col2", "col3")

Ответ №1:

Единственное преимущество сохранения нестандартных имен заключается в том, если вы хотите использовать их в качестве меток на графике или в таблице или в чем-то еще. Но это очень затруднит работу с данными, и эти имена могут быть повторно введены в качестве меток позже. Вы можете использовать нестандартные имена, помещая их в обратные ссылки, например, @c_age1619_da`

Некоторые редакторы (например, RStudio) будут правильно заполнять эти нестандартные имена автоматически, что несколько упрощает работу с ними, но все равно не так приятно, как со стандартными именами.

Переименование их в стандартные имена, как правило, лучше. Многие функции, считывающие данные, будут делать это автоматически. Вы можете использовать эту make.names функцию для преобразования нестандартных имен в стандартные имена, в основном заменяя любые специальные символы на . s. Подобный этому:

 names(my_data) = make.names(names(my_data))  

Но, как правило, лучше всего создавать осмысленные имена вручную. sovtoll_available....False тоже не очень дружелюбное имя по сравнению с чем-то вроде sovtoll_unavailable .

Комментарии:

1. Спасибо вам за исчерпывающее объяснение. У меня есть еще один вопрос. Выполняет clean_names ли функция из библиотеки уборщика аналогичные изменения в именах, как make.names это делается?

2. Я никогда не использовал его раньше, но, глядя на документацию, это звучит похоже. Звучит так, как будто он использует _ , а не . . Будучи более новой функцией в хорошо поддерживаемом пакете, в целом она может выполнять более приятную работу.