Цикл For не возвращает никакого значения с помощью функции print()

#r

#r

Вопрос:

Я использовал цикл for для повторения функции print() для печати значений от 1 до 100. Это код, который я использовал

 for(i in 1:100){
  print(i)
}
  

Однако этот код не вернул никакого значения. Когда я использую вместо этого функцию cat(), она возвращает значение, подобное этому

 for(i in 1:100){
  cat(i)
}

#Output: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  

Что-то не так с моим циклом for? Или, может быть, есть что-то, что мне нужно проверить в моей Rstudio?
P.S. Вот как это выглядело в моей Rstudio
введите описание изображения здесь

Комментарии:

1. Что вы получите, если просто наберете print в консоли? Возможно ли, что вы затеняли встроенную функцию?

2. Я собираюсь предположить, что что-то было перезаписано print . rm(list = ls());file.remove(".RData");file.remove(".Rhistory"); а затем перезапустите R. Обратите внимание, что это удалит историю и переменные из вашего сеанса R при следующем запуске. Возможно, что-то очевидно в ваших переменных среды.

3. Когда я набираю print в консоли, он возвращает: function (x, ...) UseMethod("print") <bytecode: 0x0000020a5ba886a8> <environment: namespace:base> . Я попробовал код в Rstudio Cloud, и он сработал, так что, возможно, что-то не так с моей локальной Rstudio @MrFlick

4. Я попробовал for(i in 1:100){ base::print(i) } , и это сработало! Означает ли это, что есть другой пакет, который имеет print() функцию? Однако я не загружал никаких других пакетов… @Мрфлик @Оливер

5. @Oliver как изменение print.default только повлияет print() , а не base::print() ? Обе функции все равно будут отправлять — они должны найти то же самое print.default . Даже если вы добавили print.integer или что-то еще, оба имеют UseMethod("print")