我有一列名称,格式为" FIRST.LAST",我试图分成两个新列。
my_df <- my_df %>% separate(name, c("first_name", "last_name"), sep = '.')
创建了两个新列,但它们是空白的。建议为什么会这样?
答案 0 :(得分:2)
我们可以转义.
因为.
是一个元字符,它暗示任何字符而不是字面点,并且sep
参数占用正则表达式,它可能会误认为它是任何字符字符。根据{{1}}
sep - 如果是character,则被解释为正则表达式。该 默认值是一个匹配任何序列的正则表达式 非字母数字值。
因此,我们可以使用?separate
\\
或者将其放在方括号内以评估为文字点
my_df %>%
separate(name, c("first_name", "last_name"), sep = '\\.')
my_df %>%
separate(name, c("first_name", "last_name"), sep = '[.]')