使用dplyr更改包含冒号(“:”)的字符名

使用dplyr更改包含冒号(“:”)的字符名,r,dplyr,kaggle,R,Dplyr,Kaggle,我有一个包含以下国家名称的数据集: - en:france - en:united-kingdom - en:spain 我想将名称更改为: - France - United_Kingdom - Spain 但是如果我将select函数与dplyr一起使用,则会出现以下错误: “eval(expr、envir、enclose)中出错:找不到对象'en' 这是我到目前为止编写的代码(使用来自的数据帧): 国家/地区% tbl_df()%>% 分组依据(国家/地区标签)%>% 汇总

我有一个包含以下国家名称的数据集:

 - en:france
 - en:united-kingdom
 - en:spain
我想将名称更改为:

 - France
 - United_Kingdom
 - Spain
但是如果我将
select
函数与
dplyr
一起使用,则会出现以下错误:

“eval(expr、envir、enclose)中出错:找不到对象'en'

这是我到目前为止编写的代码(使用来自的数据帧):

国家/地区%
tbl_df()%>%
分组依据(国家/地区标签)%>%
汇总(计数=n())%>%
过滤器(!grepl(“,”,国家/地区标记))%>%
选择(法国=欧洲:法国)%>%
排列(描述(计数))

有人能告诉我如何更改包含冒号的对象的名称吗

选择
仅选择列。如果列名有冒号,您可能需要使用
select\uu
并引用列名:
select(“en:france”)

如果您需要案例,您必须使用
过滤器
——但是请注意,比较需要
=
,而不是sinlge
=
(如上面的select调用中所示):
过滤器(法国==“en:France”)


如果需要重命名,请使用
colnames(dat)[which(colnames(dat)=“en:france”)]或者
make.names(sub(“en:”,”,c(“en:france”,“en:united kingdom”,“en:spain”)
?另外,错误说明
en:france
应该在引号中:
“en:france”
为什么不使用现有的
foodfacts$countries\u en
列?
dat$x[其中(dat$x==“en:france”)]
countries <- foodfacts %>%
         tbl_df() %>%
         group_by(countries_tags) %>%
         summarise(count = n()) %>%
         filter(!grepl(",", countries_tags)) %>%
         select(France = en:france) %>%
         arrange(desc(count))