如何将 R data.frame 保存为不带空格的 CSV?

How to save an R data.frame as CSV with no spaces?

我将以下 data.frame 保存为 CSV 文件。当 data.frame 另存为 CSV 时,我在 Text 组件后看到 一点 space(见图)。如何在将 data.frame 保存为 CSV 时避免创建 space?谢谢

library(lubridate)
library(tidyverse)

DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2001-12-31"), by = "days"), Flow = runif(365, 1, 5)) %>% 
      mutate(Year = year(Date), Month = month(Date), Day = day(Date), JDay = yday(Date), Text = rep("FLOW_OUT_",365)) %>% 
      mutate(Format = paste(Text,JDay,"_",Year)) %>% 
      select(8) %>% 
      write.csv(file = "Format.csv")

我们可以使用 paste0 而不是 paste 来避免创建空格,因为 paste 中的默认 sep 选项是 sep= " "

...
  mutate(Format = paste0(Text,JDay,"_",Year))
...

-完整代码

DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2001-12-31"), 
         by = "days"), Flow = runif(365, 1, 5)) %>% 
      mutate(Year = year(Date), Month = month(Date),
      Day = day(Date), JDay = yday(Date), Text = rep("FLOW_OUT_",365)) %>% 
      mutate(Format = paste0(Text,JDay,"_",Year)) %>% 
      select(8)

或者另一种选择是在 paste

中使用 sep 参数
DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2001-12-31"), 
             by = "days"), Flow = runif(365, 1, 5)) %>% 
          mutate(Year = year(Date), Month = month(Date),
          Day = day(Date), JDay = yday(Date), Text = rep("FLOW_OUT_",365)) %>% 
          mutate(Format = paste(Text,JDay,"_",Year, sep="")) %>% 
          select(8)

-输出

head(DF)
#           Format
#1 FLOW_OUT_1_2001
#2 FLOW_OUT_2_2001
#3 FLOW_OUT_3_2001
#4 FLOW_OUT_4_2001
#5 FLOW_OUT_5_2001
#6 FLOW_OUT_6_2001