带有唯一值数字的列
Column with numbers for unique values
我在 R studio 中有一个 tibble,看起来像 this And I need to add a column that gives to each name the same unique number. So it should look like this
我已经尝试过如下代码:
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, along.with = unique(Name))) >%>
ungroup()
此代码为所有列提供了相同的编号。所以它给了我每个 NameID 的数字 1。
我也试过下面的代码:
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, length(unique(Name)))) >%>
ungroup()
我得到了同样的结果。我认为我可能需要使用 if function
或 ifelse
,但我真的不知道正确的语法应该是什么。
格式不好,我是第一次在这里提问,我需要学会更好地写东西
有了dplyr
1.0.0,我们可以使用cur_group_id
library(dplyr)
df1 %>%
group_by(Name = factor(Name, levels = unique(Name))) %>%
mutate(NameID = cur_group_id())
或者不用group_by
,也可以是match
df1 %>%
mutate(NameID = match(Name, unique(Name)))
或将 factor
强制为 integer
df1 %>%
mutate(NameID = as.integer(factor(Name, levels = unique(Name))))
我在 R studio 中有一个 tibble,看起来像 this And I need to add a column that gives to each name the same unique number. So it should look like this
我已经尝试过如下代码:
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, along.with = unique(Name))) >%>
ungroup()
此代码为所有列提供了相同的编号。所以它给了我每个 NameID 的数字 1。
我也试过下面的代码:
people >%>
gorup_by(Name) >%>
mutate(NameID = seq(1, length(unique(Name)))) >%>
ungroup()
我得到了同样的结果。我认为我可能需要使用 if function
或 ifelse
,但我真的不知道正确的语法应该是什么。
格式不好,我是第一次在这里提问,我需要学会更好地写东西
有了dplyr
1.0.0,我们可以使用cur_group_id
library(dplyr)
df1 %>%
group_by(Name = factor(Name, levels = unique(Name))) %>%
mutate(NameID = cur_group_id())
或者不用group_by
,也可以是match
df1 %>%
mutate(NameID = match(Name, unique(Name)))
或将 factor
强制为 integer
df1 %>%
mutate(NameID = as.integer(factor(Name, levels = unique(Name))))