для цикла данных цикла в сценарии r - PullRequest
0 голосов
/ 18 сентября 2018

у меня в переменной хранится следующий фрейм данных:

  project_name task_name
6              TPV

Этот кадр данных хранится в переменной с именем isPNfound.

Если имя задачи запрашивается в кадре данных, я должен вернуть имя проекта. Но когда имя проекта пустое, предполагается, что следующий код перехватит это и предупредит:

if(isPNfound$project_name == "") {
    dataStatus <- paste("Task [", projectTaskName, "] has no Project assigned to it!!!")
    print(dataStatus)
    chkstatus <- 0
}

Приведенный выше код работает, если в кадре данных только одно имя задачи, совпадающее с "TPV". Но предположим, что во фрейме данных есть несколько строк, мне нужно запустить цикл для него. Но я не знаю, как это сделать.

Пример содержимого фрейма данных:

  project_name task_name
6 Rice TPV
7 Beans TPV
8       TPV

Мне нужно как-то запустить мой код в цикле на этом кадре данных. Вот моя попытка:

isPNfound <- dataframeContent
if (length(isPNfound) > 1) {
    for (eachtask in isPNfound){
        dataStatus <- paste("Task [", projectTaskName, "] has no    Project assigned to it!!!")
        print(dataStatus)
        chkstatus <- 0
    }
 }

1 Ответ

0 голосов
/ 18 сентября 2018

Как то так?

chkstatus <- isPNfound$project_name != ""
dataStatus <- ifelse(chkstatus,
              "OK",
              paste("Task [", isPNfound$task_name, "] has no Project assigned to it!!!")
)

chkstatus <- as.integer(chkstatus)

chkstatus
#[1] 1 1 0

dataStatus
#[1] "OK"                                           
#[2] "OK"                                           
#[3] "Task [ TPV ] has no Project assigned to it!!!"

DATA.

isPNfound <-
structure(list(project_name = c("Rice", "Beans", ""), 
task_name = c("TPV", 
"TPV", "TPV")), row.names = c("6", "7", "8"), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...