#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, которой вы поделились, видна только вам (локально).