如何在R语言中使用管道符等自定义分隔符写入CSV文件?
解决R语言自定义分隔符写入文件的问题
嘿,这个问题我太熟了!其实write.csv()和write.csv2()都是write.table()的封装函数,它们的分隔符是硬编码死的:write.csv()固定用逗号,write.csv2()固定用分号(适配欧洲地区的十进制分隔习惯),所以你手动设置sep="|"肯定会被忽略,这是设计上的限制,不是bug哦。
要实现自定义分隔符(包括你提到的^、$、~、¬、|这些),直接用底层的write.table()函数就可以了,它完全支持自定义分隔符,而且你可以通过参数设置来模拟write.csv()的行为。
示例代码:用竖线|分隔写入文件
假设你的数据集叫df,要写入名为my_data_piped.txt的文件,代码如下:
write.table( x = df, file = "my_data_piped.txt", sep = "|", # 设置你需要的自定义分隔符 row.names = FALSE, # 和write.csv一致,不输出行名 col.names = TRUE, # 保留列名 quote = TRUE, # 给字符串列加引号,避免内容中的分隔符破坏格式 na = "" # 缺失值用空字符串表示,和write.csv行为一致 )
参数说明
sep:直接替换成你需要的任意分隔符,比如sep="~"、sep="¬"或者sep="$"都可以quote=TRUE:强烈建议保留这个设置,如果你的数据里包含和分隔符相同的字符,引号能保证后续读取时不会解析出错- 如果确定数据里没有和分隔符重复的内容,可以把
quote=FALSE来去掉引号
读取自定义分隔符的文件
读取的时候记得用read.table()对应设置分隔符,示例:
df_loaded <- read.table( "my_data_piped.txt", sep = "|", header = TRUE, quote = "\"", na.strings = "" )
内容的提问来源于stack exchange,提问作者KrSid
相关产品推荐
相关产品推荐

