1
Votar
Presentado por
ZSAV01
sobre
08-27-2018
19:15
Al trazar R Script Visual, Power BI parece generar todas las columnas relacionadas con un archivo .csv (codificación UTF-8), luego lee los datos en R con la función «read.csv».
La función es así:
`dataset` = read.csv('C:/Users/***/REditorWrapper_5c23c015-1ba8-4bb0-a824-3f8179725132/input_df_73ea8250-a892-46d5-8e7d-c38f5993bbed.csv', check.names = FALSE, encoding = "UTF-8", blank.lines.skip = FALSE)
Al manejar datos con caracteres chinos, esta línea de código puede causar un problema grave, que R no pueda leer los datos correctamente.
Principalmente, R no podrá separar los datos usando comas. La forma correcta de manejar el archivo ‘.csv’ codificado en UTF-8 es reemplazar
encoding = 'UTF-8'
con
fileEncoding = 'UTF-8'
Consulte este archivo, por ejemplo, https://1drv.ms/u/s!An3qTCClETscjq41_6sBSz5RlJ2C0w
Estos son los datos originales:
Datos originales
Estos son los datos cargados en R usando ‘read.csv’ con codificación = «UTF-8», que aparentemente es incorrecto. Esta parece ser la forma en que R maneja los datos cuando colabora con PowerBI…
Datos cargados en R
Si cambio el código en REditorWrapper.R a fileEncoding = «UTF-8», podría arreglarse. Sin embargo, no he descubierto cómo modificar el código para solucionar el problema en R Script Visual… BI maneja la forma en que R carga los datos en este momento.
Reparado
Reparado
Estado: Nuevo
v-qiuyu-msft
Hola @ZSAV01,
¿Ocurre el problema cuando obtiene datos a través de un script R o usa R visual para trazar datos?
Según mi prueba, podemos obtener datos a través de la fuente de datos del script R a continuación:
let Source = R.Execute("MyData <- read.csv('C:/Users/<user>/Downloads/input_df_73ea8250-a892-46d5-8e7d-c38f5993bbed.csv', check.names = FALSE, encoding = ""UTF-8"", blank.lines.skip = FALSE)"), MyData1 = Source{[Name="MyData"]}[Value] in MyData1
Si agrega una imagen R, también puede ejecutar el siguiente código:
biblioteca (ggplot2)
biblioteca (gridExtra)
MisDatos <- read.csv('C:/Usuarios/
grid.table(MisDatos)
En su escenario, actualice el escritorio de Power BI a la misma versión 2.61.5192.601 de 64 bits (agosto de 2018) que la nuestra y vuelva a probar.
Atentamente,
qiuyun yu
ZSAV01
Hola Qiyu,
Confirmé que mi versión de BI es la versión: 2.61.5192.601 de 64 bits (2018年8月)
Encontré este problema cuando cargué los datos en BI e intenté usar visualizaciones visuales de R Script directamente en BI.
Como puede ver a continuación, BI generará un error de que los datos no se pueden cargar en R.
Los usuarios de R en chino pueden estar familiarizados con este error. Principalmente, esto se debe a parámetros incorrectos establecidos en read.table/read.csv. Al cargar este tipo de datos en R, la forma preferible de configurar la codificación es usar el parámetro «fileEncoding» en lugar del parámetro «encoding».
Si llama al IDE de Rstudio y ve el código en REditorWrapper.R, encontrará claramente el motivo.
BI ordena a R que use read.csv(…, encoding = «UTF-8»), lo cual es una mala idea.
El parámetro «codificación» solo se aplica a la «cadena», mientras que el parámetro «codificación de archivo» se aplica al «archivo».
Cuando se utilizan caracteres chinos, la codificación = «UTF-8» puede provocar un comportamiento inesperado.
Véanse los documentos te R citados a continuación.
————————–
Documento R para read.table: ENTRADA DE DATOS
codificación de archivo
cadena de caracteres: si no está vacía declara la codificación utilizada en una Archivo (no una conexión) para que los datos de los caracteres se puedan volver a codificar. Consulte la sección ‘Codificación’ de la ayuda para el archivo, el ‘Manual de importación/exportación de datos R’ y ‘Nota’.
codificación
codificación que se asumirá para la entrada instrumentos de cuerda. Se usa para marcar cadenas de caracteres como si estuvieran en Latin-1 o UTF-8 (ver Codificación): no se usa para volver a codificar la entrada, pero permite que R maneje cadenas codificadas en su codificación nativa (si es una de esos dos). Ver ‘Valor’ y ‘Nota’.
————————-
Mensaje de error de BI:
Tipo de Comentarios:
fruncir el ceño (error)
Marca de tiempo:
2018-08-29T10:03:11.9536001Z
Hora local:
2018-08-29T18:03:11.9536001+08:00
ID de sesión:
6b145a69-5cbe-4449-8ee8-5e6f45e3d070
Liberar:
agosto 2018
Version del producto:
2.61.5192.601 (18.08) (x64)
Mensaje de error:
Error de secuencia de comandos R.
Error en read.table(file = file, header = header, sep = sep, quote = quote, :
列的数目比列的名字要多
Llamadas: read.csv -> read.table
停止执行
Versión del sistema operativo:
Microsoft Windows NT 10.0.15063.0 (x64 zh-CN)
Versión CLR:
4.7 o posterior [Release Number = 460798]
Pico de memoria virtual:
34,3GB
Memoria Privada:
361 MB
Conjunto de trabajo máximo:
498 MB
Versión IE:
11.1088.15063.0
ID de usuario:
9f2e364a-333c-4c09-adf6-a5d7e344fdcb
Información del paquete del libro de trabajo:
1* – zh-CN, Grupos de consulta: 0, fastCombine: Deshabilitado, runBackgroundAnalysis: Verdadero.
Telemetría habilitada:
Cierto
Modo predeterminado del modelo:
Importar
Registros de seguimiento de instantáneas:
C:UsuariosZhengAppDataLocalMicrosoftPower BI DesktopFrownSnapShot1398057214.zip
Registros de seguimiento de rendimiento:
C:UsuariosZhengAppDataLocalMicrosoftPower BI DesktopPerformanceTraces.zip
Funciones de vista previa deshabilitadas:
PBI_shapeMapVisualHabilitado
PBI_newFromWeb
PBI_Lingüística Española Habilitada
Conectores personalizados
PBI_variationUIChange
Información sobre herramientas de PBI_canvas
PBI_PythonSupport habilitado
PBI_showIncrementalRefreshPolicy
PBI_modelos compuestos
PBI_DB2DQ
Opciones de DirectQuery deshabilitadas:
PBI_DirectQuery_Unrestricted
Tratar a Hana como fuente relacional
Nube:
nube global
Escala DPI:
150%
Servicios admitidos:
BI de energía
Fórmulas:
sección Sección 1;
compartido #»input_df_73ea8250-a892-46d5-8e7d-c38f5993bbed (1)» = dejar
Fuente = Csv.Documento(Archivo.Contenido(«C:UsuariosZhengDescargasinput_df_73ea8250-a892-46d5-8e7d-c38f5993bbed (1).csv»),[Delimiter=»,», Columns=6, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#»Encabezados promocionados» = Table.PromoteHeaders(Fuente, [PromoteAllScalars=true]),
#»Tipo cambiado» = Table.TransformColumnTypes(#»Encabezados promocionados»,{{«1.近三个月,您最常用哪个版块看资讯?[图片]», escriba texto}, {«编号», Int64.Type}, {«2.整体来说,您看资讯的总满意度是», Int64.Type}, {«3.能根据我一直感兴趣的兴趣点 推荐 相关 相关 «, int64.type}, {» 4. 的 «4. 的 的 我 的 的 的兴趣点 相关 资讯», {«6. 6. 6. 我 选择 对 某 类 资讯 不 感 后 后 后没有再推荐给我», Int64.Type}})
en
#»Tipo cambiado»;
ZSAV01
@v-qiuyu-msft ¡Gracias!
v-qiuyu-msft
Hola @ZSAV01,
¿Con qué versión de R configura el escritorio de Power BI para que se ejecute? Probé con R 3.5.1, el mismo script R no arroja errores.
Pero según mi investigación, ggplot no se puede usar de esta manera para trazar una imagen. Para trazar una tabla visual, puede ejecutar el siguiente script como mencioné anteriormente:
library(gridExtra) grid.table(dataset)
Atentamente,
Qiuyun Yu
ZSAV01
Hola @v-qiuyu-msft,
Estos datos son solo para demostrar el error read.csv. Entiendo que no puede ser trazado por ggplot.
Probé este código en R 3.5.0… No estoy seguro de si este es el motivo, es más como un problema relacionado con la configuración regional del sistema. ¿Qué configuración regional estás usando? Estoy en CP936.
Sys.getlocale() [1] "LC_COLLATE=Chinese (Simplified)_People's Republic of China.936;LC_CTYPE=Chinese (Simplified)_People's Republic of China.936;LC_MONETARY=Chinese (Simplified)_People's Republic of China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_People's Republic of China.936"
Lo probaré en R 3.5.1 cuando tenga tiempo. Por ahora, agregué esta línea en Rprofile.site y solucioné este problema temporalmente.
En resumen, sobrescribí la función «read.csv», para forzar el paso de «UTF-8» a «fileEncoding» en lugar de «encoding».
.First = function() read.csv <<- function (file, header = TRUE, sep = ",", quote = """, dec = ".", fill = TRUE, comment.char = "", encoding = "" , ...) { read.table(file = file, header = header, sep = sep, quote = quote, dec = dec, fill = fill, comment.char = comment.char, fileEncoding = encoding, ...) }
quererhanaj
Tengo un problema similar cuando hay un carácter de nueva línea.
6 comentarios (6 nuevos)