Подсказка значения по умолчанию изменения и выходной префикс строки в R?

Можно думать о нем как это:

int x = 10;

X контейнер и содержит значение, 10.

x = x++;

Это может быть сломано к:

1) increment the value contained in x 
    now x contains 11

2) return the value that was contained in x before it was incremented
    that is 10

3) assign that value to x
    now, x contains 10

Теперь, распечатайте значение, содержавшееся в x

Console.WriteLine(x);

И, неудивительно, это распечатывает 10.

21
задан William Doane 26 August 2013 в 14:06
поделиться

8 ответов

вы действительно должны использовать опцию linkMapper в slimbox (функцию, которую вы можете передать как необязательный параметр) в переопределить поведение по умолчанию slimbox, которое использует атрибут title вашей гиперссылки для заголовка окна

, таким образом вы можете использовать любой стандартный атрибут, скажем 'alt', или, что еще лучше, пользовательский, например 'slimboxcaption', чтобы сделать убедитесь, что ни один браузер не будет отображать его содержимое; вставьте в сеанс R, чтобы выполнить код и сравнить их вывод. Конечно, в этом случае они получат другие результаты, поскольку я основываю пример на случайных данных.

Спасибо, Джейк, Марек и всем остальным ... все ответы были полезны!

]
15
ответ дан 29 November 2019 в 06:38
поделиться

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

options (prompt = "", continue = "")

Обратите внимание на пробелы между кавычками.

При первом варианте подсказка исчезнет . Второй удаляет "+" с длинных строк-переносов.

26
ответ дан 29 November 2019 в 06:38
поделиться

Что касается изменения подсказки, то вам нужна команда options с аргументом подсказка , которую я нашел здесь .

> options(prompt = "# Customized R Prompt!\n")
# Customized R Prompt!
1 + 5
[1] 6
# Customized R Prompt!

Установка в приглашении пустой строки приводит к:

> options(prompt="")
Error in options(prompt = "") : invalid value for 'prompt'

Вот почему я использовал комментарий. Насколько я могу судить, в R нет блочных комментариев, поэтому я сделал подсказку строковым комментарием и поставил новую строку в конце - должно быть нет проблем, если кто-то копирует-вставляет ваш сеанс таким образом.

Я все еще немного смотрю формат вывода ... В этом сообщении списка рассылки есть код, который, кажется, форматирует вывод без блоков [#] , но это точно не очень красиво.

5
ответ дан 29 November 2019 в 06:38
поделиться

Трудный способ - это регулярное выражение исходного вывода. Предположим, у вас есть код:

x <- rnorm(10)
  x

head(USArrests)

lm(y~x+z,
    data.frame(y=rnorm(10),z=runif(10),x=rbinom(10,2,.5))
)

Вы можете сохранить его в файл, а затем использовать readLines для чтения в переменную. Я делаю то же самое, используя textConnection для скопированного вывода:

to_edit <- readLines(textConnection("
> x <- rnorm(10)
>   x
 [1] -0.43409069 -1.05399275  1.53440218  0.05812936  1.62713995 -1.20644184
 [7] -0.15698798 -2.36494897 -0.14440292  1.47182117
> 
> head(USArrests)
           Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7
> 
> lm(y~x+z,
+ data.frame(y=rnorm(10),z=runif(10),x=rbinom(10,2,.5))
+ )

Call:
lm(formula = y ~ x + z, data = data.frame(y = rnorm(10), z = runif(10),     x = rbinom(10, 2, 0.5)))

Coefficients:
(Intercept)            x            z  
    -0.6460       0.3678       0.3918  
"))

Теперь некоторые правки:

id_commands <- grep("^> |^\\+ ",to_edit) # which are commands or its continuity
to_edit[id_commands] <- sub("^> |^\\+ ","",to_edit[id_commands]) # remove promt
to_edit[-id_commands] <- paste("#",to_edit[-id_commands]) # comment output

И результат:

> writeLines(to_edit) # you can specify file or write on screen
# 
x <- rnorm(10)
  x
#  [1] -0.43409069 -1.05399275  1.53440218  0.05812936  1.62713995 -1.20644184
#  [7] -0.15698798 -2.36494897 -0.14440292  1.47182117

head(USArrests)
#            Murder Assault UrbanPop Rape
# Alabama      13.2     236       58 21.2
# Alaska       10.0     263       48 44.5
# Arizona       8.1     294       80 31.0
# Arkansas      8.8     190       50 19.5
# California    9.0     276       91 40.6
# Colorado      7.9     204       78 38.7

lm(y~x+z,
data.frame(y=rnorm(10),z=runif(10),x=rbinom(10,2,.5))
)
# 
# Call:
# lm(formula = y ~ x + z, data = data.frame(y = rnorm(10), z = runif(10),     x = rbinom(10, 2, 0.5)))
# 
# Coefficients:
# (Intercept)            x            z  
#     -0.6460       0.3678       0.3918  
# 

Это работает, но, как я уже сказал, это больно.

5
ответ дан 29 November 2019 в 06:38
поделиться

У меня есть еще два предложения:

1) Вы можете написать свой код в файле сценария; тогда вы можете без проблем скопировать и вставить код.

В стандартном графическом интерфейсе R выберите «Файл»> «Новый сценарий». Введите туда весь свой код, затем, чтобы запустить его, просто выделите код и нажмите CTRL-R. Многие другие графические интерфейсы R имеют подобное поведение. Вы по-прежнему можете работать в интерактивном режиме в этом режиме; ключевое отличие состоит в том, что вы выделяете код и запускаете его, а не нажимаете ENTER.

2) Используйте функции history () . См. Справку:? История. Вы можете сохранить историю консоли с помощью этой команды:

savehistory (file = ".Rhistory")

Затем вы можете открыть ее как файл сценария с помощью этой команды:

edit (file = ". Rhistory")

Вы также можете изменить max.show, возможно, даже по умолчанию в вашем собственном .Rprofile. Например,

история (max.show = Inf, reverse = FALSE)

3
ответ дан 29 November 2019 в 06:38
поделиться

Не уверен, поддерживается ли это на всех платформах, но в Windows вы можете Копировать, затем щелкните правой кнопкой мыши и выберите «Вставить только команды», что делает именно то, что вам нужно. К сожалению, здесь нет сочетания клавиш.

1
ответ дан 29 November 2019 в 06:38
поделиться

По сути, он ссылается на другой элемент, который упоминается в другом месте, который может быть или не быть тем же документом схемы. Например, он может поступать из схемы, на которую имеется внешняя ссылка, в другом пространстве имен. Предположим, вы часто используете элемент item в нескольких разных схемах, вы можете объявить его (и любые другие общие типы и атрибуты) в общей схеме, а затем повторно использовать их во всех ваших другие схемы. Если вы ссылаетесь на свою общую схему с пространством имен c , вы можете объявить экземпляр элемента item отдельно или как часть типа следующим образом:

<xs:element ref="c:item" /><!-- reference here -->
<xs:complexType name="something">
    <xs:sequence>
        <xs:element ref="c:item" /><!-- and here -->
    </xs:sequence>
    <xs:element name="other" type="xs:Name" />
</xs:complexType>

Определение в схеме данных будет выглядеть следующим образом:

1
ответ дан 29 November 2019 в 06:38
поделиться

Вы пишете, что

одна из вещей, которые всегда меня разочаровало то, что я просто не могу копировать команды и вывод из R и вставьте их в другой сеанс R.

и я предполагаю, что вы работаете в Windows со стандартным двоичным кодом R Windows. Боюсь, что то, что вы имеете в виду, может оказаться просто невыполнимым. Но поскольку то, что вы хотите делать, на самом деле очень желательно, люди поступили иначе. Из руководства ESS :

5 Управление сохраненными файлами стенограммы

Нижний режим S записывает стенограмму (список всех выполненных команд, и их выход) в процессе буфер, который можно сохранить как "файл стенограммы", который должен обычно имеют суффикс '.St'. В наиболее очевидное использование файла с расшифровкой как статическая запись действий вы выступали в определенном S сеанс. Однако иногда вы можете хотите повторно выполнить записанные команды в файле стенограммы, отправив их к работающему процессу ESS. Эта для чего нужен режим Transcript.

Если вы загружаете файл a с суффиксом .St в Emacs, он помещается в S Режим стенограммы. [...]

Однако переход на Emacs / ESS может быть несовместим с вашими учениками. Поэтому для прямого копирования и вставки лучше всего просто обернуть выражения в dput () сначала:

R> set.seed(42)
R> x <- rnorm(10)
R> x
 [1]  1.37096 -0.56470  0.36313  0.63286  0.40427 -0.10612  1.51152 -0.09466  2.01842 -0.06271
R> dput(x)
c(1.37095844714667, -0.564698171396089, 0.363128411337339, 0.63286260496104, 
0.404268323140999, -0.106124516091484, 1.51152199743894, -0.0946590384130976, 
2.01842371387704, -0.062714099052421)
R> 

Последнее выражение можно вырезать и вставить обратно в R.

1
ответ дан 29 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: