首页 > 解决方案 > 数据框中的非英文字母

问题描述

我在处理数据框中的非英文字母时遇到问题。我想更改列名,但函数dplyr::rename(colName1 = śśś)显示错误并通知该列不存在。

这只是一个例子。我知道,我可以用不同的方式重命名这些列。

我试图将全局选项中的默认编码更改为 UTF-8,但它没有帮助。

标签: r

解决方案


我不太清楚问题是什么。如果您想要将非 ASCII 列名称更改为 ASCII 名称,您可以通过将非 ASCII 名称与正则表达式匹配来实现:

可重现的数据:

df <- data.frame(
  NY = c("some", "data", "more", "data"),
  śśś = c("some", "data", "more", "data")
)

要将非 ASCII 名称更改为 ,例如Whatever,使用grepl匹配[^ -~]字符类 ( [...]) 以排除( ^) 任何 ASCII 字符 ( -~),从而匹配非 ASCII 字符,例如ś希腊字母、中文字符、阿拉伯字母、元音变音等:

colnames(df)[grepl("[^ -~]", colnames(df))] <- "Whatever"

结果:

df
    NY Whatever
1 some     some
2 data     data
3 more     more
4 data     data

推荐阅读