2016-09-27 2 views
-3

Почему печать используется с пастой в R?Использование пасты с печатью

speed <- 31 

print(paste("Your speed is", speed)) 
# [1] "Your speed is 31" 

paste("Your speed is", speed)) 
# [1] "Your speed is 31" 
+1

Поскольку 'paste()' делает символьный вектор и 'print()' печатает. Просто потому, что вы видите результат интерактивно при вызове 'paste()', не означает, что вы увидите его таким образом в неинтерактивном скрипте или вызове функции. Кроме того, thx @JJJ за подавление крика. – hrbrmstr

+0

Является ли этот вопрос дубликат http://stackoverflow.com/a/11533369/382936 –

+0

@SethDifley: я не понимаю нисходящие точки, так как я думал, что речь идет об основном поведении консоли R и не понимая неявный вызов 'print' для каждого завершенного выражения. Я сделал поиск дубликата, но не нашел его, но хотел бы предложить честный голос за молотком. –

ответ

0

Вы должны включить print(), когда хотите произвести вывод из функции. Например:

x <- function(){ 
     speed <- 31 
     paste("Your speed is", speed) 
     y = 3 
    } 

ничего, но это будет не будет печатать:

x <- function(){ 
speed <- 31 
    print(paste("Your speed is", speed)) 
    y = 3 
} 
0

R является интерпретируемым языком и имеет интерфейс, который является «REPL», для чтения оценки-печати петли , Сначала вводится ввод пользователя, а затем интерпретатор ищет функцию print, которая специфична для класса возвращаемого элемента. Вы можете увидеть список (хотя это не «список» R-), введя это в консоли:

methods(print) # it's a fairly long listing. 

Таким образом, используя печать() вокруг выражения на уровне консольного что-то другое, чем обычно не делает R-интерпретатор. Другая функция, которая должна быть знакома, - это cat, которая иногда имеет полезную функцию, заключающуюся в том, что она не помещает кавычки вокруг «напечатанных» значений и не имеет скрытого возврата каретки в конце. Многие методы печати дают сокращенный вывод, который использует cat для построения итоговых результатов. Если вы действительно хотите увидеть, что находится в объекте, вам необходимо использовать str или dput.

Смежные вопросы