如何解决R for() 循环:将“ls”标准输出管道传输到 read.csv() 并创建多个对象
我想实现一个优雅的解决方案:通过使用 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。