【问题标题】:Error in subtraction with code pasted from the clipboard [closed]从剪贴板粘贴的代码减法错误[关闭]
【发布时间】:2014-05-26 18:40:41
【问题描述】:

好的,简化一下:

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)

我正在尝试实现this method

【问题讨论】:

  • 它看起来像是一个深奥的错误,与您的 R 会话或工作区中的一些奇怪的东西有关。您可以在干净的 R 会话中重现它吗? (而且您的示例不可重现。它在第一行给出错误:找不到函数 readOGR。我知道您提供了一个链接,但最好复制所有相关部分,例如库(xyz)等)
  • 如果没有 Z 的定义,我无法尝试您的示例
  • 请给我们一个可重现的例子stackoverflow.com/questions/5963269/…
  • 对不起。我在第一部分添加了库(rgdal)和 Z 的定义。谢谢!我会在一个干净的 R 会话中尝试。
  • 看看下面的cmets。看起来 R 控制台将十六进制字符串 e2 88 92 转换为减号......谢谢大家!

标签: r


【解决方案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所代表的unicode字符

【讨论】:

  • 很奇怪。如果我选择所有 Xcos(lat0) - Zsin(-lat0) 并运行选择,它会给我 1 作为结果。如果我运行包括 X
  • 请注意,在有问题的行中,连字符比正常的减号长:- vs
  • 是的。奇怪的是 R 控制台自动进行了替换...谢谢!
  • @MatthewLundberg:实际上,这是一个减号,一个由 HTML &amp;minus; 实体产生的符号。 :)
  • 对不起大家(尤其是罗德里戈!),在该线程中回复时,我使用 HTML &amp;minus; 而不是 ASCII 破折号,因为减号与标准加号字符的宽度相同。我不知道当将其作为表达式复制并粘贴到 R 解释器时会导致一些问题。
猜你喜欢
  • 2020-06-16
  • 2016-01-30
  • 2017-12-23
  • 2015-07-29
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多