R语言使用write.csv输出CSV时如何为行名字段设置列名
R语言write.csv行名列名设置方法
R自带的write.csv()没有直接给行名所在列设置列名的参数,你直接修改colnames(df)无法生效是因为数据框的行名本身是独立于常规列的属性,不属于数据框的普通列范畴,修改普通列的列名不会作用到行名对应的表头位置。
有两种常用的实现方案:
- 方案一:先把行名转为数据框的普通列,再输出
操作代码示例:# 把行名转为普通列,列名可自定义,示例里设为row_id df$row_id <- rownames(df) # 调整列顺序,把行名列放到第一列(可选,按需调整即可) df <- df[,c("row_id","fullname","addr1","addr2","City","State","ZIP","Keycode","csz")] # 输出时关闭行名输出即可 write.csv(df, "你的输出路径.csv", row.names = FALSE) - 方案二:不想修改原数据框的情况下,用更底层的
write.table()间接实现write.csv本质是write.table()的封装变体,操作示例:write.table(df, "你的输出路径.csv", sep = ",", row.names = TRUE, # 第一个元素就是行名列的表头,后面跟上原数据框的列名即可 col.names = c("row_id", colnames(df)), quote = FALSE, na = "")
注意:如果你的数据里有逗号、空格等特殊字符,建议把
quote参数设为TRUE,避免后续CSV解析出错。
内容的提问来源于stack exchange,提问作者OldManSeph
相关产品推荐
相关产品推荐

