【发布时间】:2018-02-05 11:18:19
【问题描述】:
我有一个数据集,每行有一列包含一组国家/地区。有时国家会重复不止一次,我想在下面的数据集中计算每行中唯一国家的数量:
> class(address_countries2$address_countries)
[1] "character"
> head(address_countries2)
address_countries
1 China China
2 China China China
3 China China
4 China China
5 China China China China China China
6 China China Uk China
所需的输出将是这样的新列:
address_countries n_countries
1 China China 1
2 China China China 1
3 China China 1
4 China China 1
5 China China China China China China 1
6 China China Uk China 2
这段代码给出了每行中的单词数:
address_countries2 <- address_countries2 %>%
select(address_countries) %>%
mutate(n_countries = str_count(address_countries, boundary("word")))
> head(address_countries2)
address_countries n_countries
1 China China 2
2 China China China 3
3 China China 2
4 China China 2
5 China China China China China China 6
6 China China Uk China 4
我尝试使用 str_count() 添加 unique() 以及 n_distinct() 和 distinct() 但我收到此错误:
Error in mutate_impl(.data, dots) :
Column `n_countries` must be length 34760 (the number of rows) or one, not 39
有什么建议吗?
【问题讨论】:
-
Stnge,您接受了一个不完整的答案,无法检查它是否有效......
-
它有效。唯一需要改变的是“ist_country”变成“address_countries”,它可以工作:)