Отдельная формула - PullRequest
       2

Отдельная формула

0 голосов
/ 28 ноября 2018

Я получаю эту ошибку, когда пытаюсь отделить свой столбец "."Мой код

txt <- "'Rural Male' 'Rural Female' 'Urban Male' 'Urban Female'
50-54 11.7 8.7 15.4 8.4
55-59 18.1 11.7 24.3 13.6
60-64 26.9 20.3 37.0 19.3
65-69 41.0 30.9 54.6 35.1
70-74 66.0 54.3 71.1 50.0)"

data <- read.table(header = TRUE, text = txt)

datanew <- data %>% tbl_df() %>% mutate(age= row.names(data)) %>% gather(key, death_rate, -age)`

separate(data = datanew,col = key, sep = ".", into = c("a","b"))

Предупреждающее сообщение Ожидается 2 шт.Дополнительные произведения отбрасываются в 20 рядов [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].

1 Ответ

0 голосов
/ 28 ноября 2018

Use sep использует регулярные выражения, а в регулярных выражениях . означает «любой символ».Чтобы получить литерал ., необходимо экранировать его обратной косой чертой, используйте sep = "\\."

separate(data = datanew, col = key, sep = "\\.", into = c("a","b"))
# # A tibble: 20 x 4
#    age   a     b      death_rate
#    <chr> <chr> <chr>  <chr>     
#  1 50-54 Rural Male   11.7      
#  2 55-59 Rural Male   18.1      
#  3 60-64 Rural Male   26.9      
#  4 65-69 Rural Male   41        
#  5 70-74 Rural Male   66    
#  ...

. По умолчанию для separate используется любая не-буквенная не цифра.Так что в этом случае вы также можете просто использовать значение по умолчанию:

separate(data = datanew, col = key, into = c("a","b"))
# same result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...