r - 在 R 中,read.table 在特定的开始字符串上返回错误
问题描述
在 R 中工作(在 macOS Catalina 上使用 RStudio 的 R 4.0.3,或在 linux 上的 R 3.3.1),当我尝试导入(使用 read.table)一个前 3 个字符为“BZh”的文本文件时,之后至少还有一个字符,我得到一个错误。
我写了一个测试来查看其他字符组合,但“BZh *”是迄今为止唯一一个 import.table 返回错误的组合。我没有测试所有的 ascii 字符或任何东西,只是大小写字母。这是我写的测试:
upper_chars = unlist(strsplit("ABCDEFGHIJKLMNOPQRSTUVWXYZ", split = ""))
lower_chars = unlist(strsplit("abcdefghijklmnopqrstuvwxyz", split = ""))
outpath="test.txt"
for (char1 in upper_chars){
for (char2 in upper_chars){
for (char3 in lower_chars){
test_str <- paste(char1, char2, char3, "_", sep = "")
write.table(test_str, outpath, quote = FALSE, row.names = FALSE, col.names = FALSE)
tryCatch({
read.table(outpath)
},
error = function(cond) {
message(test_str)
})
}
}
}
报告错误的唯一字符串是“BZh”,后跟至少一个其他字符(我已经将第 4 个字符测试为“0”、“_”以及大小写字符,它们都导致read.table 中的错误)。“BZh”本身不会报告错误。“Bzh_”、“bzh_”和“bzH_”都没有
我已经尝试在 vim 中创建文件(而不是在 R 中使用 write.table 编写表),并得到相同的错误,尽管我没有对此进行过多测试。
解决方案
推荐阅读
- scala - 包含空键的 Apache Spark Join
- python - 文件描述符不包含后端 url django
- node.js - 无法将猫鼬缓冲区数据数组转换为字符串?
- spring-boot - 如何配置 Spring Cloud Config Server 以使用克隆的配置文件
- laravel - 在一个查询中按条件记录计数器
- python - 在 Pytorch 中创建具有固定权重的线性模型
- node.js - Twilio 对话:SessionError:将消息标记为已读时未找到通道
- python - 找不到命令 - Discord.py
- youtube-data-api - 为多个 youtube 频道创建多个项目
- php - 服务器运行长进程时挂起的 ajax 请求