heaven открыл .sav файл и загнал его в dataframe.
Задача: лаконично переименовать столбцы.
Если известны номера искомых столбцов и их мало, то переименовать легко
Но что делать, если нужно просто убрать нули из названия каждого столбца?
Ищу простое решение, где не нужно вручную переименовывать каждую колонку по типу: ('q1','q2'...'qN')
Вот такое решение сработало.
names(dt)[1:24] <- gsub("0", "", names(dt))
Но выдаёт ошибку.
"количество элементов, подлежащих замене, не кратно длине замены".
number of items to replace is not a multiple of replacement length
Вопрос: Почему консоль ругается? gsub успешно заменяет несколько нулей, результат ожидаемый.
а зачем присвоение по индексу? можете просто names(dt) <-gsub(...,names(dt))
Либо [1:24] с обеих сторон, либо вообще уберите
не уточнил: с 1 по 24 у меня вопросы по искомым характеристикам, которые система назначила q0001,q0002 и так далее. А с 25 по 30 начинается паспортичка (возраст, пол и т.п.). Паспортичку я переименовал вручную через перечисление элементов вектора. Для вопросов с 1 по 24 я так делать не хочу, потому их нельзя лаконично/удобно сократить. Проще сравнивать с анкетой. + Там ещё в .sav к каждому вопросу присвоены лейблы, которые раскрывают вопрос, но как с ними работать я ещё не раскурил. Есть - и отлично. Так удобнее.
Глупый вопрос, а почему кто то ещё использует что то другое кроме data.table?
Потому что в gsub тоже надо names(dt)[1:24]
https://textbook.rintro.ru/io.html#io-spss
как раз сейчас статью оттуда читал, сэнкс
спасибо, очень полезно с практической ТЗ. Узнал, что можно быстро перевести закодированные значения в факторы, и они автоматически перекодируют опрос. Хорошо, что прочитал, прежде чем начал строить костыли. SPSS мне люто систему грузит, аналогичные действия в R быстрее проходят. И таблицы сопряжённости можно в пару кликов вывести 👍
спсс с какой-то лохматой версии, чуть ли не с 15 или 17, на джаве живет поэтому с большими датасетами, в которых особенно много колонок и/или значений в лейблах — тоска и морока в общем, рад, что оказалось полезно
Обсуждают сегодня