Вернуть результат, используя оператор if для l oop в r - PullRequest
1 голос
/ 20 февраля 2020

Я бы хотел вернуть результат в векторе на основе результатов оператора if. Мое значение по умолчанию в столбце будет «пустым», и если оба условия будут выполнены ==FALSE, я бы хотел, чтобы вектор / ячейка имели «некоторый текст». Вот что у меня есть:

COMP30$Test_3<-"blank"
matches<-list(c(COMP30$PMPI_Has_Plan,COMP30$PMPI_Is_Eligible,COMP30$Test_3))
for (match in matches){if (match[1]==FALSE & match[2]==FALSE){match[3]<-"some text"}}

После запуска я показываю только «пусто», хотя есть экземпляры ==FALSE & ==FALSE. По сути, либо условие не оценивается, либо результат не возвращается. Я только начал изучать R, поэтому я не уверен, что мне не хватает. Спасибо!

1 Ответ

1 голос
/ 20 февраля 2020

Из того, что я могу догадаться о вашем наборе данных. Пожалуйста, предоставьте свои данные, используя dput.

Используя векторизацию:

COMP30$Test_3<-"blank"
matches <- cbind(COMP30$PMPI_Has_Plan, COMP30$PMPI_Is_Eligible, COMP30$Test_3)
matches[!matches[,1] & !matches[,2],3] <- "Some text"

Или с for l oop:

matches <- cbind(COMP30$PMPI_Has_Plan, COMP30$PMPI_Is_Eligible, COMP30$Test_3)
for (k in 1:nrow(matches)){
  if (!matches[k, 1] & !matches[k, 2]){
    matches[k, 3] <- "some text"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...