如何在R语言中拆分单列?解决separate函数报错问题
解决R语言单列拆分多列的问题
嘿,我帮你看看这个报错的问题哈!你的代码里有两个关键小错误,咱们一步步修正:
错误原因分析
- 管道操作的参数冗余:用
%>%管道后,separate函数的第一个参数不需要再传入df了,管道已经自动把前面的数据集传递进来,你只需要指定要拆分的列名就行。 - 列名向量里的多余逗号:你在
into参数的列名列表里,Age后面多了一个逗号(,,"Zip-code"),这会导致生成一个空元素,这就是报错“参数长度为零”的根源。
修正后的代码
方法1:修正你的separate原代码
library(tidyr) library(dplyr) df <- data.frame(Col = c("1::F::1::10::48067","2::M::56::16::70072","3::M::25::15::55117")) # 修正后的拆分代码 df %>% separate(col = Col, into = c("Sr No.","Gender","Occupation","Age","Zip-code"), sep = "::")
方法2:使用tidyr新版本推荐的separate_wider_delim函数
如果你的tidyr版本是1.2.0及以上,更推荐用这个函数,语法更直观清晰:
df %>% separate_wider_delim(cols = Col, delim = "::", names = c("Sr No.","Gender","Occupation","Age","Zip-code"))
运行结果说明
不管用哪种方法,最终都会得到拆分后的结构化数据集:
| Sr No. | Gender | Occupation | Age | Zip-code |
|---|---|---|---|---|
| 1 | F | 1 | 10 | 48067 |
| 2 | M | 56 | 16 | 70072 |
| 3 | M | 25 | 15 | 55117 |
内容的提问来源于stack exchange,提问作者mihir deshpande
相关产品推荐
相关产品推荐

