Замена значений в столбце именами (условный цикл)

#r

Вопрос:

Поэтому я пытаюсь создать цикл для замены номеров строк (1-17) именами переменных с помощью R Studio.

Для кода это то, что я пытался сделать:

 G1 lt;- sample_n(G, 100, replace=FALSE, by=V1) dt = data.table(G1)  
 for (i in 1:17) dt[V1 == i, paste(  "upps_negative_urgency", "upps_lack_of_perseverance",   "upps_lack_of_premeditation","upps_positive_urgency",   "upps_sensation_seeking", "cash_choice_task","BIS",   "BAS_Reward_Responsiveness","BAS_Drive", "BAS_funseeking",   "ddis_scr_expr_mnrt_allcho", "ddis_scr_expr_medrt_allcho",   "ddis_scr_expr_mnrt_immcho", "ddis_scr_expr_medrt_immcho",   "ddis_scr_expr_mnrt_delaycho", "ddis_scr_expr_medrt_delaycho",   "ddis_scr_expr_mnrt_diffcho", i)]  

Однако, когда я запускаю его, в моем фрейме данных ничего не меняется.

Это мой первый раз, когда я работаю с циклами, поэтому я немного зациклился на том, почему они не меняются. Я знаю, что мой другой вариант-использовать оператор ifelse, однако для этого столбца у меня есть 17 столбцов (что не страшно), но затем у меня есть еще один столбец с 402 переменными, поэтому мне бы не хотелось писать 400 операторов ifelse.

Любая помощь будет оценена по достоинству. Спасибо!

http://localhost:20174/session/steep-carp_reprex_preview.html (Здесь прилагается версия reprex)

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

1. Вам нужно назначить результат операции либо той же переменной, либо новой переменной/объекту. Например for(i in 1:17) ... , выражение (…) будет выполнено 17 раз. Чтобы сохранить результат, вам нужно что-то вроде my_result_list lt;- list(); for(i in 1:17) my_result_list[[i]] lt;-... этого, чтобы сохранить ваши прогоны в списке.

2. Можете ли вы поделиться полным репрексом, включая загруженные пакеты и объект G? Рад помочь, но ссылка reprex, которой вы поделились, видна только вам (локально).