Агрегирование строк символов, разделение и повторение

Попробуйте определить значение по умолчанию, которое пройдет проверку:

[ConfigurationProperty("startTime", IsRequired = false, DefaultValue = "00:00:00")]
[RegexStringValidator(@"\d{2}:\d{2}:\d{2}")]
public string StartTime
{
    get 
    {
        return (string) this["startTime"];
    }

    set
    {
        this["startTime"] = value;
    }
}
1
задан Arun kumar mahesh 18 January 2019 в 13:36
поделиться

1 ответ

Вот вариант с tidyverse. Создайте data_frame с 'var1', separate в три столбца на основе индекса позиции, удалите , в конце строки в столбце 'v3', создайте столбец группировки с gl, чтобы сгруппировать строк в каждых 5 строках, сгруппированных по 'grp', 'v1' и 'v2', summarise по 'v3' путем paste элементов v3 в одну строку

library(tidyverse)
data_frame(var1) %>% 
    separate(var1, into = paste0('v', 1:3), sep= c(1, 5)) %>% 
    mutate(v3 = str_remove(v3, ",$")) %>%
    group_by(grp = as.integer(gl(n(), 5, n())), v1, v2) %>%
    summarise(v3 = toString(v3)) %>%
    ungroup %>%
    select(-grp)
# A tibble: 3 x 3
#  v1    v2    v3                                       
#  <chr> <chr> <chr>                                    
#1 1     0300  010118, 02, 03, 0405, 0512, 0612, 0717   
#2 1     0310  010618, 0221, 0315, 0412, 0517, 0612,0729
#3 1     4510  010517, 0212, 03, 0465, 0588, 0651, 0777 

Или мы можем сделать это в base R, создав разделитель в упомянутых позициях, а затем использовать read.csv

df1 <- read.table(text= sub("^(.)(.{4})(.*),?$", "\\1-\\2-\\3", var1), 
    sep="-", header = FALSE, stringsAsFactors = FALSE, col.names = paste0("v", 1:3))
df1$grp <- as.integer(gl(nrow(df1), 5, nrow(df1)))
aggregate(v3 ~ ., df1, FUN = toString)[-3]
0
ответ дан akrun 18 January 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: