如何使用带指定分隔字符的separate方法,解决character类调用报错问题
报错原因
tidyr包的separate()函数设计为直接操作数据框对象,你代码里给第一个参数传入的是cerveceria_dataset$CLIENTE,这是提取出来的字符型向量,不属于separate支持的输入类,因此触发类匹配错误。同时你将返回结果赋值给单个列cerveceria_dataset$CLIENTE也不符合逻辑:separate拆分后会生成2个新列,返回的是完整的处理后的数据框,不是单个列。
修正后的代码
基础写法
# 需先加载tidyr包 library(tidyr) cerveceria_dataset <- separate( data = cerveceria_dataset, col = CLIENTE, into = c("Nombre","Apellido"), sep = ";" )
管道写法(更符合tidyverse风格)
library(dplyr) library(tidyr) cerveceria_dataset <- cerveceria_dataset %>% separate(col = CLIENTE, into = c("Nombre","Apellido"), sep = ";")
可选参数说明
- 如果你需要保留原始的CLIENTE列,添加参数
remove = FALSE即可 - 如果CLIENTE列存在包含多个分号的单元格,可添加
extra = "merge"将多出来的内容合并到最后一列,或extra = "drop"直接丢弃多出来的内容,避免警告
内容的提问来源于stack exchange,提问作者Kevin CZ
相关产品推荐
相关产品推荐

