Ошибка вычитания с кодом, вставленным из буфера обмена

Хорошо, упрощая:

lat0 <- 42.61527
X <- 0.2023649
Z <- -0.9793102

Почему это дает ошибку:

X <- X*cos(lat0) − Z*sin(-lat0)
## Error: unexpected input in "X <- X*cos(lat0) �"

а это нет?

X <- X*cos(42.61527) - Z*sin(-42.61527)

Вот платформа и версия R:

platform       x86_64-w64-mingw32
version.string R version 3.0.2 (2013-09-25)

Я пытаюсь реализовать этот метод


r
person Rodrigo    schedule 26.05.2014    source источник
comment
Это похоже на эзотерическую ошибку, связанную с чем-то странным в вашем сеансе R или рабочей области. Можете ли вы воспроизвести это в чистом сеансе R? (И ваш пример не воспроизводим. Он дает ошибку в первой строке: не удается найти функцию readOGR. Я знаю, что вы дали ссылку, но лучше скопировать все соответствующие части, например, библиотеку (xyz) и т. д.)   -  person lebatsnok    schedule 26.05.2014
comment
Я не могу попробовать ваш пример без определения Z   -  person Matthew Lundberg    schedule 26.05.2014
comment
Пожалуйста, дайте нам воспроизводимый пример stackoverflow.com/questions/5963269/   -  person EDi    schedule 26.05.2014
comment
Извини. Я добавил библиотеку (rgdal) и определение Z в первую часть. Благодарю вас! Я попробую в чистой R-сессии.   -  person Rodrigo    schedule 26.05.2014
comment
Посмотрите комментарии ниже. Похоже, консоль R переводит шестнадцатеричную строку e2 88 92 в знак минус... всем спасибо!   -  person Rodrigo    schedule 26.05.2014
comment
@Rodrigo Я отредактировал ваш вопрос, чтобы удалить исходный код, добавить сообщение об ошибке, которое я получаю из вашего примера, и попытаться дать лучший заголовок. Не стесняйтесь откатывать или редактировать дальше, как хотите.   -  person Matthew Lundberg    schedule 26.05.2014
comment
Это не та ошибка, которую я получал. Итак, я думаю, мы можем удалить этот вопрос...?   -  person Rodrigo    schedule 26.05.2014


Ответы (1)


То, что выглядит как знак минус между X*cos(lat0) и Z*sin(-lat0), не является знаком минус:

X <- X*cos(lat0) − Z*sin(-lat0)

Вот шестнадцатеричный дамп этого текста:

0000000  sp   X  sp   <   -  sp   X   *   c   o   s   (   l   a   t   0
         20  58  20  3c  2d  20  58  2a  63  6f  73  28  6c  61  74  30
0000020   )  sp   b  bs dc2  sp   Z   *   s   i   n   (   -   l   a   t
         29  20  e2  88  92  20  5a  2a  73  69  6e  28  2d  6c  61  74
0000040   0   )  nl
         30  29  0a
0000043

Что должно быть знаком -, так это символ Юникода, представленный шестнадцатеричной строкой e2 88 92

person Matthew Lundberg    schedule 26.05.2014
comment
Очень странно. Если я выберу все Xcos(lat0) − Zsin(-lat0) и запущу выделение, в результате я получу 1. Если я запускаю всю строку, включая X ‹- , она снова падает. И вылетает только в окне скрипта, а не в R Console... - person Rodrigo; 26.05.2014
comment
Обратите внимание, что в строках с проблемой дефис длиннее обычного знака минус: - vs - person Matthew Lundberg; 26.05.2014
comment
Да, это. Странно, что R Console произвела подмену автоматически... Спасибо! - person Rodrigo; 26.05.2014
comment
@MatthewLundberg: На самом деле, ЭТО был знак минус, знак, полученный из объекта HTML &minus;. :) - person CiaPan; 01.06.2014
comment
Извините всех (особенно Родриго!), отвечая в этой ветке, я использовал HTML &minus; вместо тире ASCII, потому что минус такой же ширины, как и стандартный плюс. Я понятия не имел, что это вызовет проблемы при копировании и вставке выражения в интерпретатор R. - person CiaPan; 01.06.2014