【问题标题】:How to remove part text from a column? [duplicate]如何从列中删除部分文本? [复制]
【发布时间】:2018-06-22 07:34:36
【问题描述】:

我有一个日期值存储为以下格式的字符串:(Day_of_weekMonthDayYear)。我想删除星期几,所以最终格式是:(MonthDay,Year)

mydata <- data.frame(Date=c("Tuesday, September 19, 2017",
                            "Friday, April 20,2018"),
                     Date_Exp=c("September 19, 2017",
                                "April 20,2018"))

【问题讨论】:

  • 你想达到什么目的? 一天中的哪一天是什么?请展示您解决问题的尝试以解决问题。
  • 我想删除“日期”列中给出的星期几......就像星期二应该从“2017 年 9 月 19 日星期二”中删除......我只想要“9 月” 2017 年 1 月 19 日"
  • 是的,我明白了,您的任务很明确。那么,问题是什么?

标签: r dplyr gsub


【解决方案1】:

正如@Wiktor Stribiżew 所说..您的任务很明确,但无法达到目的。 但是,这可以解决您的问题:

format(as.Date(mydata$Date,format = "%A, %B %d, %Y"), format="%B %d %Y")
[1] "September 19 2017" "April 20 2018" 

【讨论】:

    【解决方案2】:

    使用gsub,我们可以删除日期开头的“,”和空格后的任意数量的字符。

    mydata$Date <- gsub("^[a-zA-z]+, ", "",mydata$Date)
    

    【讨论】:

      【解决方案3】:

      您可以将日期保留为字符串,然后使用正则表达式删除星期几:

      vec <- c("Tuesday, September 19, 2017", 
               "Friday, April 20,2018")
      
      trimws(sub("^.*?,","",vec))
      
      #[1] "September 19, 2017" "April 20,2018"    
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 1970-01-01
        • 2021-05-18
        • 2011-03-17
        • 2023-01-20
        • 2021-10-25
        • 2017-12-11
        相关资源
        最近更新 更多