【问题标题】:How to save an R data.frame as CSV with no spaces?如何将 R data.frame 保存为没有空格的 CSV?
【发布时间】:2020-10-21 19:44:38
【问题描述】:

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

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")

【问题讨论】:

    标签: r dataframe csv save tidyverse


    【解决方案1】:

    我们可以使用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
    

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2012-01-10
      • 2017-07-14
      • 1970-01-01
      • 2020-05-16
      • 2015-08-26
      • 2020-10-08
      • 2021-07-16
      • 2017-08-27
      相关资源
      最近更新 更多