Как мне l oop операция над строками, в зависимости от значения столбца? р - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь создать новый столбец sep_l_values, который зависит от значения в столбце division.

У меня есть некоторые данные agg

division   agg_4546   agg_47  
  45         10         NA     
  46         11         NA   
  47         NA         10   

I хочу:

division   agg_4546   agg_47  sep_l
  45         10         NA     10
  46         11         NA     11
  47         NA         10     10

Почему это не работает? Пожалуйста, вы можете предоставить решение?

for (row in 1:nrow(agg)){
  if (agg[row,'division'] = 47){
    agg$sep_l <- agg$agg_47
  } else {
    agg$sep_l <- agg$agg_4546 
  }
}

В сообщении об ошибке написано

Error: unexpected '=' in:
"for (row in 1:nrow(div_to_agg)){
  if (div_to_agg[row,'division'] ="

Но мне требуется = для условия?

1 Ответ

0 голосов
/ 25 марта 2020
agg<-data.frame(division=c(45,46,47),agg_4546=c(10,11,NA),agg_47=c(NA,NA,10))

for (row in 1:nrow(agg)){
  if (agg[row,'division'] == 47){
    agg$sep_l[row] <- agg$agg_47[row]
  } else {
    agg$sep_l[row] <- agg$agg_4546[row]
  }
}

вы пропустили двойное «==» в условии if и «[row]» для адресации к указанной записи c, а не к полному столбцу «agg»

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