2015-01-18 3 views
0

Мне нравится решать мои математические проблемы (средняя школа), используя R, поскольку это быстрее, чем писать на листе бумаги. Одна проблема у меня в том, что я должен продолжать писать знак умножения, например:Умножение в R без использования знака умножения

9x^2 + 24x + 16 = дает ошибки: неожиданный символ «9x»

Есть ли способ в R для умножения 4x без записи 4 * x, но только 4x? Я бы сэкономил время на то, чтобы писать один дополнительный персонаж все время! Благодаря

+2

Вы также записываете знаки '+' и попадаете в пробел. Почему '' 'беспокоит вас? –

+0

Я чувствую, что я пишу больше * 's then +' s, это спасет меня некоторое время, проблема также выглядит более ясной в консоли без всех *, есть ли какая-то другая программа, которую я мог бы использовать? – Johnsy22

+0

Я бы так не думал, потому что, как вещи написаны в математике, они отличаются от того, как вещи написаны в коде. Обычно вам нужно явно указывать язык программирования точно, что вы делаете при каждой операции. –

ответ

1

No. Имея ряд перед персонажем без пространства просто не действует синтаксис в R.

+0

Не могу написать какую-то функцию, которая превратит x в = * (9), поэтому, когда я напишу 4x, она будет равна 4 * (9)? – Johnsy22

+0

Нет. Парсер R не будет разбирать это. Это недопустимый синтаксис. Вы не можете исправить синтаксическую ошибку с определением функции. – MrFlick

+1

Или я думаю, вы могли бы написать свой собственный парсер, если хотите ввести свои функции в виде строк. Что-то вроде 'myparse <-function (x) {eval (parse (text = gsub (" \\ b (\\ d +) ([[: alpha:]] \\ w *) \\ b "," \\ 1 * \\ 2 ", x)), parent.frame())}; х <-5; myparse ("9x^2 + 24x + 16") ', но это просто глупо. – MrFlick

0

Сделайте шаг назад и взглянуть на правила синтаксиса для, скажем, Excel, Matlab, Python , Mathematica. У каждого языка есть свои правила, как правило (:-)) с полным основанием. Например, в R, являются следующие юридические названия объектов:

foo foo.bar foo1 foo39

Но 39foo не является законным. Поэтому, если вам нужна последовательность [0-9][Letters] или наоборот, чтобы указать умножение, у вас возникнет конфликт с правилами именования.

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