从 Google 表格中读取包含表情符号的 CSV 失败

Reading CSV containing emojis from Google Sheets fails

我已经对 Google 表单进行了调查,并将结果发送到 Google 表格。

然后我尝试将结果下载到 R:

url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vRkkjx8AOgNdfDW9wtaHR8wtMQOrgTB1O1wwMcJLGre3E_MixhEaIGUI7gfHw5gBQX7-gcNkRUkMM3X/pub?output=csv'

google <- read.csv(url, sep = ',',  header = T, fileEncoding = "UTF-8")

遇到问题:

Warning:
In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  incorrect input found in input connection 'https://docs.google.com/spreadsheets/d/e/2PACX-1vRkkjx8AOgNdfDW9wtaHR8wtMQOrgTB1O1wwMcJLGre3E_MixhEaIGUI7gfHw5gBQX7-gcNkRUkMM3X/pub?output=csv'

我的 R 数据集只导入了 96 行。

我检查了我的 Google 表格,发现第 96 行包含表情符号并停止下载其他行。 我应该在那里做什么或应该选择哪种编码才能有机会阅读 R 中的表情符号?

R 版本:1.2.5033

您可以尝试将文件内容加载为字符向量,然后在加载数据之前手动删除表情符号。

删除非常高的 UTF-8 值是一种粗略但有效的删除表情符号的方法。

remove_emojis <- function(strings)
{
  sapply(strings, function(x) intToUtf8(utf8ToInt(x)[-which(utf8ToInt(x) > 100000)]))
}

google <- remove_emojis(readLines(url, encoding = "UTF-8"))
df     <- read.table(text = google,
                     sep = ",", 
                     fileEncoding = "UTF-8", 
                     stringsAsFactors = FALSE)

感谢Allan,你帮了我大忙!

我找到了另一个决定。

url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vRkkjx8AOgNdfDW9wtaHR8wtMQOrgTB1O1wwMcJLGre3E_MixhEaIGUI7gfHw5gBQX7-gcNkRUkMM3X/pub?output=csv'
df = readLines(url, encoding = "UTF-8")
df     <- read.table(text = df,
                     sep = ",", 
                     fileEncoding = "UTF-8", 
                     stringsAsFactors = FALSE)

然后我使用 View 功能用表情符号检查我的行,它正确地显示给我。