R语言中用write.table()导出DataFrame时去除NA值的方法
解决R中write.table导出时去除NA值的问题
我之前也碰到过这个需求——用write.table()导出数据时不想显示NA,而是直接留空。你当前的命令之所以还会输出NA,是因为write.table()默认会把缺失值渲染成字符串"NA",得先对数据做预处理才行。
具体步骤:
先把DataFrame中的NA替换为空字符串
用base R就能轻松实现,一行代码搞定:# 将所有NA替换为空字符串 df[is.na(df)] <- ""如果你习惯用
dplyr,也可以这样写:library(dplyr) df <- df %>% mutate_all(~replace(., is.na(.), ""))再用你原来的write.table命令导出
预处理完成后,再执行你之前的导出命令,就能得到想要的结果了:write.table(df, "student_list.txt", col.names = FALSE, row.names = FALSE, quote = FALSE, sep="\t")
验证效果
用你给出的示例数据测试后,导出的student_list.txt内容会是:
1000 John C-02 1001 Jane Wellington C-03 1002 Kate C-04 1003 Adam West C-05
完全符合你期望的格式——有NA的位置直接留空,不会显示"NA"字符串。
内容的提问来源于stack exchange,提问作者Maxxx
相关产品推荐
相关产品推荐

