微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R for() 循环:将“ls”标准输出管道传输到 read.csv() 并创建多个对象

如何解决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) }

我打算在这里实现的目标:

  1. 对于来自 ls 的每个文件路径标准输出
  2. 读取 .csv 文件
  3. 为每个读取的数据集创建一个数据框。

谢谢!

解决方法

首先获取文件名。 您可以按照对 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?