r - 在 R 中读取和过滤具有不同列数的 .DAT 文件
问题描述
我有一个.dat
测量文件。其中一些数据是“损坏的”。应跳过损坏数据所在的行。数据损坏的行的列数超过 6 或低于 6。但是我只需要 6 列的行。所以我尝试Daten2.DAT
用 R读取文件data.table
。(参见图片)有人知道我如何跳过不等于 6 列的行吗?
解决方案
不是用 读取数据,而是用 读取数据data.table::fread
,readLines
用逗号分隔行,然后解析行。
ncols <- 6
y <- readLines(con = "Daten2.DAT")
y <- strsplit(y, ",")
y <- lapply(y, function(line_read){
if(length(line_read) != ncols) NULL else line_read
})
y <- y[!sapply(y, is.null)]
df1 <- do.call(rbind.data.frame, y)
names(df1) <- paste0("Col", seq_len(ncols))
这假定文件中没有包含列标题的第一行。
推荐阅读
- sql - 如何使用 substr/regex 函数验证过滤器并从 Oracle PLSQL 中的存储过程中获取结果?
- c# - 实体框架代码首先添加 DbSet 属性
- r - 在 R 中:如何从第 N 个单元格中获取值并从第 N 列中的每个单元格中减去
- python - 索引超出列表范围?
- python - 如何在 for 循环中找到导致错误的对象?
- ruby-on-rails - 如何修复源映射错误:错误:必须对部分偏移进行排序且不重叠
- visual-studio-code - 用于检测的正则表达式!这不起作用
- c++ - 如何在 C++ 中设置 Actor 的“渲染自定义深度通道”和“深度模板值”?
- beautifulsoup - 刚刚在 IDLE PyCharm 中消失的超大文本
- python - 如何修复不支持的操作数类型错误?