Одновременное назначение переменных и печать

Мне было интересно, есть ли способ присвоить значение и кратко напечатать значение на консоли.

x <- 1:5; x

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


person Michael Clinton    schedule 25.02.2014    source источник


Ответы (1)


Ты можешь попробовать:

(x <- 1:5)

or

print(x <- 1:5)

хотя это не сработает для таких вещей, как

(names(x) <- letters[1:5])

хотя для этого конкретного примера вы можете сделать:

(x <- setNames(x, letters[1:5]))
person BrodieG    schedule 25.02.2014
comment
Не ожидал, но ("names<-"(x, letters[1:5])) печатает x со своими именами. - person alexis_laz; 25.02.2014
comment
@alexis_laz, но, к сожалению, это не устанавливает имена для x; Я думаю, что для того, чтобы черная магия работала, вы должны использовать форму names(x) <- ...; или, я думаю, вы могли бы сделать (x <- "names<-"(x, letters[1:5])), что интересно, потому что это дает вам общий механизм для других методов замены, у которых нет такой функции, как setNames. - person BrodieG; 25.02.2014
comment
Хм, я посмотрел на то, что вы сказали, и я запутался. см. это x = 1; y = c(1,2); "names<-"(x, "x"); "names<-"(y, c("y1", "y2")); x; y; x не получает атрибут имен, а y получает. Если x именуется с помощью names(x) <- .., то "names<-"(x, ..) действительно меняет свои имена. - person alexis_laz; 25.02.2014
comment
@alexis_laz, боюсь, я до сих пор не могу установить какие-либо имена для x или y с вашим кодом. Если я попробую names(x) <- "a"; "names<-"(x, "x"); x, я все равно получу исходные имена на x (т.е. a). - person BrodieG; 25.02.2014
comment
См. этот другой SO Q/A для получения более подробной информации о различиях, которые @alexis_laz и я видели здесь. - person BrodieG; 26.02.2014