пока l oop в R вызов - PullRequest
       0

пока l oop в R вызов

1 голос
/ 31 января 2020

У меня есть набор данных с 2 столбцами, который состоит из логического столбца и значений. Я хотел бы найти сумму значения F, используя l oop .Coe, показанное ниже, но с ошибкой:

 sum <- 0
FM <- 0
 idx <- 1
while ( idx <= nrow(dataset)){
if(subset(dataset,boolean=="F")){
sum <- sum + dataset [ idx,"value" ]
FM <- FM + 1

}

  idx <- idx + 1
}
 print(sum)

Сообщение об ошибке: Ошибка в idx: объект 'idx' не найден

1 Ответ

0 голосов
/ 31 января 2020

Если вы посчитаете sum логических значений, вы получите подсчет количества TRUE значений. Поскольку в этом случае, если вы хотите посчитать количество FALSE значений, мы можем отменить значения и затем использовать sum.

sum(!df$boolean)
#[1] 2

Однако, я думаю, вы хотите это в while l oop. Вы можете перебирать каждое значение в столбце boolean, проверять, равно ли оно FALSE, и увеличивать счетчик.

i <- 1
FM <- 0
while(i <= nrow(df)) {
  if(!df$boolean[i]) 
     FM <- FM + 1
   i <- i + 1
}
FM
#[1] 2

Мы также можем сделать это без if условия

while(i <= nrow(df)) {
   FM <- FM + !df$boolean[i]
   i <- i + 1
}

данных

df <- data.frame(boolean= c(TRUE,FALSE,TRUE,TRUE,FALSE),value=c(8,16,4,12,9))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...