使用 dplyr 更改包含冒号(“:”)的字符名称
Change char name containing colon (":") with dplyr
我有一个包含这样写的国家名称的数据集:
- en:france
- en:united-kingdom
- en:spain
我想将名称更改为:
- France
- United_Kingdom
- Spain
但是如果我将 select
函数与 dplyr
一起使用,我会收到此错误:
"Error in eval(expr, envir, enclos) : object 'en' not found".
这是我到目前为止编写的代码(使用来自 Kaggle called foodfacts 的数据框):
countries <- foodfacts %>%
tbl_df() %>%
group_by(countries_tags) %>%
summarise(count = n()) %>%
filter(!grepl(",", countries_tags)) %>%
select(France = en:france) %>%
arrange(desc(count))
谁能告诉我如何更改包含冒号的对象的名称?
select
只有 selects 列。如果列名有冒号,您可能必须使用 select_
并引用列名:select_("en:france")
如果你需要个案,你必须使用 filter
- 但请注意,比较需要 ==
,而不是单一 =
(如你的 select-在上面调用):filter(France == "en:france")
如果需要重命名 列 ,请使用 colnames(dat)[which(colnames(dat) == "en:france")] <- "France"
如果需要重命名值,也可以使用dat$x[which(dat$x == "en:france")] <- "France"
.
我有一个包含这样写的国家名称的数据集:
- en:france
- en:united-kingdom
- en:spain
我想将名称更改为:
- France
- United_Kingdom
- Spain
但是如果我将 select
函数与 dplyr
一起使用,我会收到此错误:
"Error in eval(expr, envir, enclos) : object 'en' not found".
这是我到目前为止编写的代码(使用来自 Kaggle called foodfacts 的数据框):
countries <- foodfacts %>%
tbl_df() %>%
group_by(countries_tags) %>%
summarise(count = n()) %>%
filter(!grepl(",", countries_tags)) %>%
select(France = en:france) %>%
arrange(desc(count))
谁能告诉我如何更改包含冒号的对象的名称?
select
只有 selects 列。如果列名有冒号,您可能必须使用 select_
并引用列名:select_("en:france")
如果你需要个案,你必须使用 filter
- 但请注意,比较需要 ==
,而不是单一 =
(如你的 select-在上面调用):filter(France == "en:france")
如果需要重命名 列 ,请使用 colnames(dat)[which(colnames(dat) == "en:france")] <- "France"
如果需要重命名值,也可以使用dat$x[which(dat$x == "en:france")] <- "France"
.