我有一个数据集,其中一些列具有特殊字符。我想清理此数据集,并从所有具有这些特殊字符的列中删除这些特殊字符。列名的子集如下:
Crorf64[,1]
ADF3
DF41c[,1]
AGGF3[,1]
SRGHJ
我想要的输出是:
Crorf64
ADF3
DF41c
AGGF3
SRGHJ
我尝试删除列名中包含特殊字符的部分,如下所示,使用以下答案作为指导https://stackoverflow.com/a/37801926/17054028:
training%>%
mutate(col=str_remove_all(col,"[.*"))
当我使用这个时,我得到一个错误:
Error in `mutate()`:
! Problem while computing `col = str_remove_all(col, "[.*")`.
Caused by error in `stri_replace_all_regex()`:
! argument `str` should be a character vector (or an object coercible to)
欢迎使用任何其他替代方法来执行此任务。
1条答案
按热度按时间hi3rlvi21#
我怀疑这可能是相同的问题,因为在你的另一个问题,所以尝试防止这些特殊字符的创建摆在首位。
如果它们是由返回矩阵的函数创建的(例如
scale()
),请注意[,1]
实际上不是列名的一部分-它只是表明该列实际上是一个矩阵:创建于2023-04-03带有reprex v2.0.2
如果你不能在你的管道中更早地解决这个问题,你可以在事实发生后从矩阵中提取列,如下所示: