169 похожих чатов

Уровень вопроса: домовой Кузя учится кодить. Работаю с данными опроса, пакетом

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 успешно заменяет несколько нулей, результат ожидаемый.

9 ответов

15 просмотров

а зачем присвоение по индексу? можете просто names(dt) <-gsub(...,names(dt))

Либо [1:24] с обеих сторон, либо вообще уберите

Александр-Bobov Автор вопроса
Makar Minchenko
а зачем присвоение по индексу? можете просто name...

не уточнил: с 1 по 24 у меня вопросы по искомым характеристикам, которые система назначила q0001,q0002 и так далее. А с 25 по 30 начинается паспортичка (возраст, пол и т.п.). Паспортичку я переименовал вручную через перечисление элементов вектора. Для вопросов с 1 по 24 я так делать не хочу, потому их нельзя лаконично/удобно сократить. Проще сравнивать с анкетой. + Там ещё в .sav к каждому вопросу присвоены лейблы, которые раскрывают вопрос, но как с ними работать я ещё не раскурил. Есть - и отлично. Так удобнее.

Глупый вопрос, а почему кто то ещё использует что то другое кроме data.table?

Потому что в gsub тоже надо names(dt)[1:24]

Александр-Bobov Автор вопроса
Philipp Upravitelev
https://textbook.rintro.ru/io.html#io-spss

как раз сейчас статью оттуда читал, сэнкс

Александр-Bobov Автор вопроса
Philipp Upravitelev
https://textbook.rintro.ru/io.html#io-spss

спасибо, очень полезно с практической ТЗ. Узнал, что можно быстро перевести закодированные значения в факторы, и они автоматически перекодируют опрос. Хорошо, что прочитал, прежде чем начал строить костыли. SPSS мне люто систему грузит, аналогичные действия в R быстрее проходят. И таблицы сопряжённости можно в пару кликов вывести 👍

Александр Bobov
спасибо, очень полезно с практической ТЗ. Узнал, ч...

спсс с какой-то лохматой версии, чуть ли не с 15 или 17, на джаве живет поэтому с большими датасетами, в которых особенно много колонок и/или значений в лейблах — тоска и морока в общем, рад, что оказалось полезно

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта