r - 函数 fread 和 ASCII 文件
问题描述
我正在尝试执行循环以多次复制和重命名 asci 文件。我的循环工作正常,但是在尝试首先导入我的 ascii 文件时,我正在努力使用“fread”功能。
我的原始 ascii 文件如下所示:
这是我到目前为止一直在使用的代码
library(purrr)
library(data.table)
files=list.files(pattern = "*.asc")
fileDF<-files%>%map(fread, fill=TRUE, header="auto", sep="auto")
fileDF
现在 fileDF 看起来像这样
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 V33 V34 V35 V36 V37 V38 V39 V40 V41
1: ncols 41.0000000 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
2: nrows 44.0000000 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
3: xllcorner -133.2624969 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
4: yllcorner 41.3875008 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
5: cellsize 0.2916667 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
6: NODATA_value -9999.0000000 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
7: 0.0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8: 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9: 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10: 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11: 0 0.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12: 10 10.0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
13: 10 10.0000000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
14: 10 10.0000000 10 10 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15: 10 10.0000000 10 10 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
显然,我运行循环后得到的新文件与我原来的文件不同,在我使用的其他软件中无法读取(因为空间格式不同)。
我试图删除 NA na.string=NULL
,并删除行和列的自动重命名,colnames
但似乎没有任何效果。我只是想获得与原始 ascii 文件完全相同的格式。
解决方案
你的问题是如何
多次复制和重命名文件。
你可以这样做
outf <- paste0("copy_", 1:10, ".asc")
inf <- "test.asc"
for (i in 1:length(outf)) {
file.copy(inf, outf[i])
}
或与 lapply
lapply(outf, \(f) file.copy(inf, f)
推荐阅读
- kotlin - 找不到方法 'org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.macosX64()
- typescript - 在打字稿中将枚举类型作为参数传递
- c - 如果在 INADDR_ANY 上侦听,确定客户端连接的实际接口?
- javascript - 错误时为 VeeValidate 3 使用自定义显示名称(标签)
- machine-learning - “特征提取”是机器学习的核心任务吗?
- wpf - WPF - 配置自定义事件以触发用户控件上的开始情节提要
- pyspark - Kafka Direct Stream 的容错功能不起作用。检查点目录不存在
- mysql - MySQL Array 基于索引位置的 SELECT 和 UPDATE 语句
- c++ - 在 C++ 中格式化字符串的输出
- r - 重命名 R 中的行标识符