Условно разделяющие переменные dplyr

Нет никакой разницы между одиночными и двойными кавычками в JavaScript.

Спецификация важна:

Возможно, существуют различия в производительности, но они абсолютно минимальны и могут меняться каждый день в соответствии с реализация браузеров. Дальнейшее обсуждение бесполезно, если ваше приложение JavaScript не имеет сотни тысяч.

Это как контрольный показатель, если

a=b;

быстрее, чем

a = b;

( дополнительные пробелы)

сегодня, в конкретном браузере и платформе и т. д.

0
задан altfi_SU 16 January 2019 в 06:16
поделиться

3 ответа

Я думаю, это то, что вы ищете. Разделите пробел, а затем замените либо #, либо / 0 пробелом, если я не понял неправильно.

data %>%
  separate(Item, into = c("Item", "Size"), sep = " ") %>%
  mutate(Size = gsub("/0|#", "", Size))
0
ответ дан Adam 16 January 2019 в 06:16
поделиться

Чтобы ответить на ваш вопрос | Оператор позволяет выбрать несколько разделителей.

data %>% 
  separate(Item, into = c("Item", "Size"), sep = " #| ")

Или вы можете использовать общий символ "", чтобы разделить все, а затем очистить столбец после:

data %>% 
      separate(Item, into = c("Item", "Size"), sep = " ")

См. https: //stringr.tidyverse. org / Articles / Regular-Expressions.html для получения дополнительной информации регулярных выражений, чтобы помочь вашей очистки. Если это неопрятный текст, который вы полюбите и вам понадобится stringR

0
ответ дан Sahir Moosvi 16 January 2019 в 06:16
поделиться

Поскольку Size имеет шаблон < # и цифру> или цифру после пробела, это переходит к аргументу sep.

  1. " #(?=[0-9])" находит шаблон, например " #1"
  2. " [0-9]" находит шаблон, например " 1"
  3. | означает или [119 ]

В сумме, ( Предполагая, что эти виды шаблонов не встречаются в имени элемента )

library(tidyverse)
x <- paste(sort(rep(LETTERS[1:4], 3)), paste0(rep("#", 3), rep(11:13, 3)))
y <- paste(sort(rep(LETTERS[1:4], 2)), paste0(rep(1:2, 2), rep("/0", 2)))
mydf <- data_frame(Item = c(x, y))
#---------------------------------
mydf %>% 
  separate(Item, into = c("Item", "Size"), sep = " #(?=[0-9])| (?=[0-9])")
#> # A tibble: 20 x 2
#>    Item  Size 
#>    <chr> <chr>
#>  1 A     11   
#>  2 A     12   
#>  3 A     13   
#>  4 B     11   
#>  5 B     12   
#>  6 B     13   
#>  7 C     11   
#>  8 C     12   
#>  9 C     13   
#> 10 D     11   
#> 11 D     12   
#> 12 D     13   
#> 13 A     1/0  
#> 14 A     2/0  
#> 15 B     1/0  
#> 16 B     2/0  
#> 17 C     1/0  
#> 18 C     2/0  
#> 19 D     1/0  
#> 20 D     2/0
0
ответ дан Blended 16 January 2019 в 06:16
поделиться
Другие вопросы по тегам:

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