조건부 서식 지정으로 열을 변화시키고 regex R

0

질문

나는 새로운 브랜드에서 일반적으로 프로그래밍. 나는 열의 목록이 포함된다. 일부는"01 월 2020"형식의 일부에만 달고 올해(즉,"January2020"만). 나는 원하는 변형이 그들을 새로운 분야를 추가 01 앞에서는 날짜에 달해 형식,그리고 나서 사용 lubridate 하는 과정이 그것으로 날짜

이것은 무엇을 했는데. 나를 추출하기 위해 노력하고 첫 번째 문자의 날 열입니다. 면 그것은 상부 케이스 편지,다음에 추가"01"니다. 내가 사용하여 tinyverse 패키지 포함 dplyr

df %>% mutate(new_date = ifelse(str_sub(Date, start = 1, end = 1)== "[:upper:]"), paste('01', Date, sep = ' '), new_date = Date)

를 받았다"는 오류 메시지 없이 없",그러나 내가 생각 포함 new_date = Date 을 유지하는 현재 서식을 지정합니다.

당신의 도움을 주셔서 감사합니다!

2

최고의 응답

1

이 작업을 수행할 수 있습니다 많은 방법이 있습니다.

base R 를 사용하여 예측하고 뒷참조:

sub("(^)(?=[A-Za-z]+)", "\\101 ", date, perl = TRUE)
[1] "01 January 2020"  "01 January 2020"  "12 February 1999" "01 March 2033"

base R 만을 사용하여 뒷참조:

sub("(^[A-Za-z]+)", "01 \\1", date, perl = TRUE)

dplyrstringr 같은 논리를 사용하여:

library(dplyr)
library(stringr)

data.frame(date) %>%
  mutate(date = str_replace(date, "(^)(?=[A-Za-z]+)", "\\101 "))

만약 당신이 주장하는 사용 ifelse:

library(dplyr)
library(stringr)

data.frame(date) %>% 
  mutate(date = ifelse(str_detect(date, "^[:upper:]"),
                       sub("^", "01 ", date),
                       date))

데이터:

date <- c("01 January 2020","January 2020", "12 February 1999", "March 2033")
2021-11-23 16:57:14
0

Here is a non-regex 옵션을 우리가 어디로 변환하여 Date 클래스고 format

library(parsedate)
format(parse_date(date), '%d %B %Y')
[1] "01 January 2020"  "01 January 2020"  "12 February 1999" "01 March 2033"  

데이터

date <- c("01 January 2020","January 2020", "12 February 1999", "March 2033")
2021-11-23 16:43:44

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................