在R语言中加载含NA的单行TXT数据集并去除NA转为向量
解决单行带NA的TXT数据转无NA向量问题
当你用read.table("abc.txt", sep = ";")加载单行带NA的数据集时,得到的是单行数据框。na.omit()和complete.cases()是按行判断缺失值的——只要行内存在NA,就会删除整行,这就是数据被清空的原因。
下面是两种可行的解决方法:
方法1:从数据框转换并过滤
- 加载数据并转为向量:
x <- read.table("abc.txt", sep = ";", header = FALSE) # 提取单行转为向量 raw_vec <- as.vector(x[1, ]) - 过滤NA值得到干净向量:
clean_vec <- raw_vec[!is.na(raw_vec)]
方法2:直接用scan读取(更高效)
跳过数据框环节,直接用scan把文件读成向量,再过滤NA:
# 读取时指定NA识别规则,安静模式避免输出读取信息 raw_vec <- scan("abc.txt", sep = ";", na.strings = "NA", quiet = TRUE) clean_vec <- raw_vec[!is.na(raw_vec)]
两种方法最终都会得到你需要的c()风格向量(比如c(108.898, 115.437, 115.879, ...))。
内容的提问来源于stack exchange,提问作者ykSeZ
相关产品推荐
相关产品推荐

