English · PDF 184
图 9-4。分离 table3 使其整洁
默认情况下,separate() 会在遇到任何非字母数字字符(即不是数字或字母的字符)处拆分值。例如,在前面的代码中,separate() 在正斜杠字符处拆分了 rate 的值。如果你想使用特定字符来拆分某一列,可以将该字符传递给 separate() 的 sep 参数。例如,我们可以将前面的代码改写为:
table3 %>% separate(rate, into = c("cases", "population"), sep = "/")
(严格来说,sep 是一个正则表达式,你将在第 11 章中了解更多相关内容。)
仔细观察列的类型:你会注意到 cases 和 population 是字符列。这是 separate() 的默认行为:它保持列的类型不变。然而,在这里这并不太有用,因为它们实际上是数字。我们可以通过 convert = TRUE 让 separate() 尝试转换为更合适的类型:
table3 %>% separate( rate, into = c("cases", "population"), convert = TRUE ) #> # A tibble: 6 × 4 #> country year cases population #> *