#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. Что вы получите, если просто наберете
2. Я собираюсь предположить, что что-то было перезаписано
rm(list = ls());file.remove(".RData");file.remove(".Rhistory");
а затем перезапустите R. Обратите внимание, что это удалит историю и переменные из вашего сеанса R при следующем запуске. Возможно, что-то очевидно в ваших переменных среды.3. Когда я набираю
function (x, ...) UseMethod("print") <bytecode: 0x0000020a5ba886a8> <environment: namespace:base>
. Я попробовал код в Rstudio Cloud, и он сработал, так что, возможно, что-то не так с моей локальной Rstudio @MrFlick4. Я попробовал
for(i in 1:100){ base::print(i) }
, и это сработало! Означает ли это, что есть другой пакет, который имеетprint()
функцию? Однако я не загружал никаких других пакетов… @Мрфлик @Оливер5. @Oliver как изменение
print.default
только повлияетprint()
, а неbase::print()
? Обе функции все равно будут отправлять — они должны найти то же самоеprint.default
. Даже если вы добавилиprint.integer
или что-то еще, оба имеютUseMethod("print")