r - 在 NA 值之后读取带有未指定尾随空格的 csv
问题描述
我有一组 csv 文件,其中缺失值 (NA) 后跟整个文件的可变数量的空格。
将这些值正确解释为 NA 而不是字符的最佳方法是什么?
以下是我正在处理的数据的示例以及我尝试过的内容。在 na.strings 参数中使用正则表达式似乎不起作用。
请注意,空格总是尾随 - 如果这有帮助的话!
x = data.frame(id = 1:5, missing = c(NA, "NA ", "NA ", "NA ", "NA "),
stringsAsFactors = FALSE)
write.csv(x, 'NA_test.csv')
read.csv('NA_test.csv', na.strings = c("NA[[:space:]]+"), header = TRUE, stringsAsFactors = FALSE)
解决方案
read.csv
忽略一些参数,所以你必须使用 read.table。不幸的是,na.string
不评估正则表达式。此外,仅从未引用的字符串strip.white = TRUE
中删除空格。这是您可以使用.read.table
read.table('~/NA_test.csv', header = TRUE, sep = ",", na.strings = c(NA, "NA ", "NA ", "NA ", "NA "), stringsAsFactors = FALSE)
id missing
1 1 NA
2 2 NA
3 3 NA
4 4 NA
5 5 NA
推荐阅读
- javascript - 使用 Express JS 阻止来自客户端的不需要的请求
- android - 高度大于宽度的屏幕的 Android Studio 布局资源
- java - 正则表达式得到 1) 而不仅仅是数字
- javascript - 一次向数组中的每个元素添加一个classList - 纯js
- random - 如何两次使用相同的随机生成的数字?- 斯威夫特用户界面
- c++ - 在 OpenGL 中对四边形进行纹理化
- python - 我如何使用正则表达式来解析 js 类名以及包含在其中的代码?
- javascript - 如何在 React JS 中停止 API 数组?
- akka - 找不到参数 um 的隐式值:akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller[class]
- c# - DataTable.WriteXml 不写列的类型