Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据读入具有某些限制的向量/扫描[R]_R - Fatal编程技术网

将数据读入具有某些限制的向量/扫描[R]

将数据读入具有某些限制的向量/扫描[R],r,R,我有一个txt文件,它的结构很好: “ fileName1.doc Author=Name fileName2.doc Author=Name fileName2.doc Author=Name “ 如何使用scan只保存文件名(前9个字符),而不保存扩展名和作者 我用过: Fnames <- scan("E:/myFiles.txt",character()) Fnames要仅获取前9个字符,请使用sep=“\n”行扫描,并使用substr(…,1,9) 您甚至可以使用read

我有一个txt文件,它的结构很好:

“
fileName1.doc  Author=Name
fileName2.doc  Author=Name
fileName2.doc  Author=Name
“
如何使用scan只保存文件名(前9个字符),而不保存扩展名和作者

我用过:

Fnames <- scan("E:/myFiles.txt",character())

Fnames要仅获取前9个字符,请使用
sep=“\n”
行扫描,并使用
substr(…,1,9)

您甚至可以使用
read.table()
(在后台使用
scan()
)和
sep=“.”
,并抓取第一列。这样,如果文件名超过9个字符,您就不必担心了。它会把它们全部归还

read.table("E:/myFiles.txt", sep=".", stringsAsFactors=FALSE)[[1]]
例如,使用
read.table()
text
参数如下:

read.table(text = x, sep = ".", stringsAsFactors = FALSE)[[1]]
# [1] "fileName1" "fileName2" "fileName2"
数据:


x这里有一个使用
readr
包的解决方案,它比base R运行快10倍。将文件作为固定with文件读取,只允许我们读取每行的前9个字符,并利用
readr::read_fwf()
性能特征

library(readr)
rawData <- "fileName1.doc  Author=Name
fileName2.doc  Author=Name
fileName2.doc  Author=Name
"
data <- read_fwf(rawData,fwf_widths(9,col_names="fileName"))
库(readr)

rawData补充说,如果您有千兆字节的数据要这样处理,
MapReduce
-系列工具更适合即使
fread
也需要在执行
substr
之前将整个对象放入RAM中
x <- "fileName1.doc  Author=Name
fileName2.doc  Author=Name
fileName2.doc  Author=Name"
library(readr)
rawData <- "fileName1.doc  Author=Name
fileName2.doc  Author=Name
fileName2.doc  Author=Name
"
data <- read_fwf(rawData,fwf_widths(9,col_names="fileName"))