Объявление переменных в R

У меня проблема с использованием переменной в R Studio. Мой код выглядит следующим образом. «child_birth» — это вектор, состоящий из 49703 строк, который указывает некоторую информацию о рождении ребенка. Что я сделал здесь, так это сказал, являются ли последние 7 символов в каждом элементе вектора «домашними». Поэтому я использовал цикл for и оператор if. если "дома", то соответствующий элемент в векторе "GetValue" будет TRUE.

forloop <- (1:49703)
for (i in forloop){
  temp <- child_birth[i]
  if (substr(temp, nchar(temp)-6, nchar(temp)) == "at home" ) {
    GetValue[i] = TRUE
  }
  else{ GetValue[i] = FALSE }
}

Я погуглил, чтобы убедиться, что в R мне не нужно делать предварительную декалацию перед использованием переменной. но когда я запустил приведенный выше код, я получил информацию об ошибке: «Ошибка: объект GetValue не найден». Так в чем проблема?

Спасибо!

Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

GetValue[i] имеет смысл, только если GetValuei) существуют. Сравните: x+i имеет смысл только в том случае, если x и i существуют, что не имеет ничего общего с тем, должны ли x и i быть объявлены перед использованием.

В этом случае вам нужно определить GetValue перед циклом. Я рекомендую

GetValue <- logical(length(child_birth))

чтобы выделить достаточно места. В этом случае вы можете полностью отказаться от предложения else, поскольку логическое значение по умолчанию равно FALSE.

Я также рекомендую удалить переменную forloop и использовать

for(i in seq_along(child_birth))

Зачем жестко запрограммировать магический номер 49703? Такие номера могут быть изменены. Если вы помещаете их явно в код, вы настраиваете себя на будущие ошибки.

Большое спасибо за ваше решение! но у меня все еще есть вопрос, нужно ли мне предварительно объявлять переменные? Например, в приведенном выше коде я не объявлял «i», но я могу использовать его в цикле for. Однако я не могу использовать «GetValue» без объявления. Я немного смущен сейчас.

kaiyu wei 20.12.2020 19:56

@kaiyuwei Вы не объявляете здесь GetValue — вы создаете его по заданию. Конструкция цикла for создает переменную-счетчик i. R ближе к Python, чем к C или Java. Это не компилируемый язык (поэтому понятие объявления было бы несколько немотивированным), но переменная все равно должна быть создана перед ее использованием. В GetValue <- logical(length(child_birth)) правая часть создает вектор. Присвоение этого вектора GetValue — это то, что создает переменную.

John Coleman 20.12.2020 20:22

Другие вопросы по теме

Как сохранить ввод в переменную после нажатия кнопки в Shiny?
Как работать с описательной статистикой (медиана, IQR, частоты, пропорции и т. д.) после многократного вменения с использованием MICE
Как сгруппировать набор данных в зависимости от начала строки
Вычислить центральную точку нескольких широтных, длинных точек в фрейме данных
Как преобразовать столбец символов в два столбца (дата и текст) в R?
Как я могу заставить R подсчитывать количество наблюдений в наборе данных, которые подпадают под категорию, определенную в другом наборе данных
Создать новый столбец со значениями, проиндексированными из другой таблицы
Как изменить элементы компонентов «navbarPage» и «tabPanel» после загрузки реактивной системы R Shiny?
Автоматически выравнивать текст по оси Y и линии сетки по нижнему и верхнему краю ggplot.
Есть ли способ вручную отрегулировать границы цветового градиента филогении в обезьянах/фитоинструментах?