问题描述
我想实现一个优雅的解决方案:通过使用 system("ls")
将 read.csv()
标准输出代理到 for()
创建对象。
工作目录:
[Data] #contain 10 .csv files e.g: './Data/dataset01.csv'
^-------^(8~16th characters)
my_Script.Rmd #RMarkdown script used in the example
R 代码:
for (i in system("ls ./Data/*.csv"))
{ read.csv(file=i) -> strsplit(i,8,16) }
我打算在这里实现的目标:
谢谢!
解决方法
首先获取文件名。
您可以按照对 File "<string>",line 26,in <module>
TypeError: unsupported operand type(s) for -: 'list' and 'str'
[Program finished]
的建议进行操作,但请确保包含 system
以将命令的输出捕获为字符串。
intern=T
另一种选择是使用函数 fl <-system("ls ./MATLAB/*.m",intern = T)
。
list.files
然后使用 fl <- list.files(path = "Data",pattern = "\\.csv$",full.names = T)
为名称赋值。使用 assign
(删除路径)和 basename
(删除文件扩展名)的组合。
tools::file_path_sans_ext