我想替换像这样的D3.js气泡图中的城市名称 How to display d3 bubbles in different colors for a dataset with one branch and many children?
我有很多"小城市"可视化,我想用ID替换他们的标签。为了更好地展示(并创建一个图例)。
这是一个小例子
cities <- c("Brest", "Rennes", "Rennes", "Rennes", "Nantes", "Lorient")
dataset <- data.frame(cities)
dataset
dataset <- dataset %>%
count(cities)
这是我的结果:n = 1(1 =&#34;小城市&#34;)
cities 1
Brest 1
Lorient 1
Nantes 1
Rennes 3
小城市=
我的期望:
n = 1的城市的ID序列(1 =&#34;小城市&#34;)
cities n id_sequence
Brest 1 1
Lorient 1 2
Nantes 1 3
Rennes 3 NA
我正在努力完成我的管道而没有成功:
dataset <- dataset %>%
count(cities) %>%
mutate (id_sequence = ifelse (n = 1:length(cities))
感谢您的帮助!
答案 0 :(得分:3)
您可以按照以下方式执行此操作:
dataset %>%
count(cities) %>%
group_by(n) %>%
mutate(id_sequence = ifelse(n == 1, 1:n(), NA))
## Source: local data frame [4 x 3]
## Groups: n [2]
##
## cities n id_sequence
## <fctr> <int> <int>
## 1 Brest 1 1
## 2 Lorient 1 2
## 3 Nantes 1 3
## 4 Rennes 3 NA
这里的想法是按包含计数的列进行分组。在mutate()
内,n()
将给出每组中的行数。对于n == 1
,n()
将返回3的小组。
答案 1 :(得分:2)
我们可以尝试
dataset %>%
count(cities) %>%
group_by(grp = n==1) %>%
mutate(id_sequence = row_number()*NA^!grp) %>%
ungroup() %>%
select(-grp)
# cities n id_sequence
# <fctr> <int> <dbl>
#1 Brest 1 1
#2 Lorient 1 2
#3 Nantes 1 3
#4 Rennes 3 NA
答案 2 :(得分:1)
当dplyr
不是要求时:
cities <- c("Brest", "Rennes", "Rennes", "Rennes", "Nantes", "Lorient")
dataset <- data.frame(cities)
dataset
dataset <- dataset %>%
count(cities)
dataset$id_sequence <- NA
sequence <- seq(dim(dataset[dataset$n == 1,])[1])
dataset[dataset$n == 1,]$id_sequence <- sequence