r - 文件中有错误(con,“r”):lapply 时无法打开连接
问题描述
我有一个包含大约 100 个文件 txt 的文件夹。我只运行简单的代码:
> setwd("E:/Yunlin/SMUNPO/TXTFILE/")
> filenames <- list.files(getwd(),pattern="*.txt")
> textfiles <- lapply(filenames, readLines)
然而,结果是Error in file(con, "r") : cannot open the connection
。我尝试设置工作目录,将文件名更改为简单,但都不起作用。我使用 readLines 函数测试特定文件名。有用。但不适用于所有文件夹。任何人都可以帮助,谢谢你提前?
解决方案
您必须在 中使用正则表达式样式的模式
pattern
,而不是 glob 样式。来自
?list.files
:pattern: an optional regular expression. Only file names which match the regular expression will be returned.
所以它期待正则表达式,而不是全局样式的模式。
使用以下选项之一:
list.files(pattern = "\\.txt$") list.files(pattern = utils::glob2rx("*.txt"))
(要学习正则表达式,我建议同时使用https://stackoverflow.com/a/22944075/3358272和https://www.regular-expressions.info/。请注意,正则表达式中的反斜杠通常需要是双黑斜杠;因为例如,
\b
R 中的(单词边界)需要是\\b
。)你应该使用
full.names=TRUE
,排除对setwd
/getwd
舞蹈的需要。我建议类似:# no need for `setwd` filenames <- list.files("E:/Yunlin/SMUNPO/TXTFILE/", pattern = "\\.txt$", full.names = TRUE)
推荐阅读
- scala - 无法序列化以 Sealed Trait 作为键类型的地图
- python - 将函数应用于 pandas DataFrame 并检查“NaNs”
- discord.py - 我在此代码 discord.py 中遇到错误,我不知道如何修复它
- terraform - Terraspace Bundle:错误:出现 git 错误 - 致命:不是 git 存储库(或任何父目录):.git
- python - 如何创建一个字典,其中键是来自不同字典的值?
- r - 在 R 中创建一个带有 2 个条形的条形图
- python - 如何将方括号添加到排序数组中
- python - 在 Python 中切片非同质 2D 列表
- python - ValueError:在进行加权预测时,操作数无法与形状 (7,) (624,3) 一起广播
- r - ggplot2 组覆盖填充命令