У меня проблема с заменой в r, у меня есть переменная со многими значениями, которые я хочу заменить в подстроке «fin», я хочу заменить значения на менее 26 Часто Задаваемые, вот мой код:Заменить различные подстроки data.frame с переменной в R
n.tab <- table(as.character(joined1$codigo))
n.many <- names(n.tab[ n.tab < 26])
length(n.many)#2311 NOTE: fin is made with paste of values, codigo is one of them
joinedAux<-joined #saving a copy
for (j in 1:length(n.many)) {#walk through elements of n.many
joinedAux$fin<-gsub(as.character(n.many[j]), "other", as.character(joined$fin))#substitute (not working)
}
И он приходит с этим предупреждением: «количество элементов для замены не кратна длине замены»
он ничего не делает, когда Я смотрю «joinAux $ fin», это то же самое, что «присоединяется к $ fin». Вот пример:
Joined$codigo Joined$fin
12 12 valid high
22 22 wrong un
23 23 wrong in
13 13 valid high
15 15 valid very high
Что мне нужно, чтобы это было после замены:
Joined$codigo Joined$fin
12 other valid high #codigo in n.many
22 22 wrong un
23 other wrong in #codigo in n.many
13 other valid high #codigo in n.many
15 15 valid very high
Заранее спасибо!
Я понимаю, что вы имеете в виду (правда, если я ошибаюсь), эта реализация перезапишет данные, уже сохраненные в $ fin, верно? например, «12 действительных максимумов не обработанных данных. Кадр будет« другим », но не« другим действительным высшим ».« Правильно ли я? – Amnor
Это правильно. Если вы хотите добавить «действительный высокий», проверьте 'str_replace' из пакета stringr. Это может обрабатывать векторы, и вы можете использовать, если для последнего решения. – jkt
Я попробую, я сообщу результаты, спасибо! – Amnor