Как поместить имя переменной в цикл for - PullRequest
0 голосов
/ 02 октября 2018

У меня есть data.frame с именем d, на котором я хотел бы выполнить следующую операцию

d <- mutate(d,netto_0 = netto_0_pc * tot_pop)
d <- mutate(d,netto_1 = netto_1_pc * tot_pop)
d <- mutate(d,netto_2 = netto_2_pc * tot_pop)
d <- mutate(d,netto_3 = netto_3_pc * tot_pop)
d <- mutate(d,netto_4 = netto_4_pc * tot_pop)
d <- mutate(d,netto_5 = netto_5_pc * tot_pop)
d <- mutate(d,netto_6 = netto_6_pc * tot_pop)
d <- mutate(d,netto_7 = netto_7_pc * tot_pop)
d <- mutate(d,netto_8 = netto_8_pc * tot_pop)
d <- mutate(d,netto_9 = netto_9_pc * tot_pop)

Я бы хотел добиться этого результата более эффективным способом, выполнивпетля.К сожалению, имена переменных не являются символьными строками, поэтому следующий код не работает.

for( k in 0:9 ){
  newcol <- paste0( 'netto_', k )
  oldcol <- paste0( 'netto_', k, '_pc' )
  d <- mutate(d, newcol = oldcol * tot_pop)
}

Или также

for( k in 0:9 ){
  newcol <- paste0( 'netto_', k )
  oldcol <- paste0( 'netto_', k, '_pc' )
  d$newcol < d$oldcol * d$tot_pop
}

Как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...