Skip to content

paste workable code to R 4.0.0 cause error

5 messages · Jinsong Zhao, Rolf Turner, Richard M. Heiberger

#
Hi there,

I have a piece of source code with some inline comments in Chinese. It 
works well when I copy it from a editor (gvim here), and paste it to 
Rgui console on R 3.6.3, however, when I do the same thing, R 4.0.0 give 
error message:

Error: invalid multibyte character in parser at line 21

If I source() the code from Rgui console, it can run without any error.

Any hints?

BTW, I do not make a minimal workable example yet.

Best,
Jinsong
#
On 2020/4/29 8:05, Jinsong Zhao wrote:
Here is the MWE:

D:\system\Desktop>cat aaa.R
gz <- data.frame(x1 = rnorm(100), x10 = rnorm(100))
gz <- within(gz,
               {
                  a <- x1      #a???????
                  bbbbb <- x10 #b???a????
                  ccccc <- x10 #c????????
                  ddddd <- x10 #d?????b????
                  eeeee <- x10 #e????????
                  fffff <- x10 #f?????c
               })

The ASCII character in the code could be replace by other ASCII 
character. The Chinese character could be replace by other Chinese 
character.

Calling source("aaa.R") could run normally. If you select all the code 
and paste it to Rgui console, it will give error:

 > gz <- data.frame(x1 = rnorm(100), x10 = rnorm(100))
 > gz <- within(gz,
+               {
+                  a <- x1      #a???????
+                  bbbbb <- x10 #b???a????
+                  ccccc <- x10 #c????????
+                  ddddd <- x10 #d?????b????
+                  eeeee <- x10 #e????????
+                  fffff <- x10 #f?????c
Error: invalid multibyte character in parser at line 9
 >               })
Error: unexpected '}' in "              }"
 >

If you delete any character from the comment, or add any character to 
the comment. The code can paste to the console without any error.

If you change the length of `bbbbb`...`fffff`, the code also could be 
paste and run without any error.

Best,
Jinsong
#
The (excellent) MWE that you provided runs just fine for me (in R 4.0.0 
under Ubuntu 18.04) either by sourcing "aaa.R" or by using copy-and-paste.

Must be Windoze thing.  Switch to Linux!

cheers,

Rolf Turner
n 29/04/20 2:25 pm, Jinsong Zhao wrote:

  
    
#
I pasted it into Emacs ESS on Macintosh, Emacs ESS on Windows, and Rgui on
Windows.
All 4.0.0 .  It runs fine.

On Tue, Apr 28, 2020 at 11:36 PM Rolf Turner <r.turner at auckland.ac.nz>
wrote:

  
  
#
On 2020/4/29 11:55, Richard M. Heiberger wrote:
I test the code using ESS on Windows. It also give error, but with 
different position:

 > gz <- within(gz,
+               {
+                  a <- x1      #a???????
Error: invalid multibyte character in parser at line 4

Is it related with locale?

 > sessionInfo()
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936
[2] LC_CTYPE=Chinese (Simplified)_China.936
[3] LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Simplified)_China.936

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.0.0 tools_4.0.0