根据R中的字母顺序为字符串指定数值
我想在数据框中创建一个数字列,其中数字表示字符列中字符串的字母顺序 假设我创建了以下数据框: df您可以使用根据R中的字母顺序为字符串指定数值,r,rank,R,Rank,我想在数据框中创建一个数字列,其中数字表示字符列中字符串的字母顺序 假设我创建了以下数据框: df您可以使用rank()进行此操作: df$alpha_order = rank(df$names) 我们可以使用因子和作为.integer因子将列转换为因子,默认值为级别,按字母顺序和为整数。整数强制级别为从1开始的整数存储值 df$alpha_order <- as.integer(factor(df$names)) df$alpha_订单谢谢!这对于OP中提到的示例非常有效,我现在看到
rank()
进行此操作:
df$alpha_order = rank(df$names)
我们可以使用
因子
和作为.integer
<代码>因子将列转换为因子
,默认值为级别
,按字母顺序和为整数。整数
强制级别为从1开始的整数存储值
df$alpha_order <- as.integer(factor(df$names))
df$alpha_订单谢谢!这对于OP中提到的示例非常有效,我现在看到的示例过于简化,因为实际用例包含大量重复的名称。因此,即使Frank被多次提到,我还是希望所有具有“Frank”值的行都得到值1。基本rank()
函数采用ties.method
参数-有关详细信息,请参阅帮助页面?rank
。您可以尝试rank(df$name,ties.method=“min”)
,它将所有领带标记为最低等级。它将在以下关系中留下间隙,例如,“Adam”、“Adam”、“Adam”、“Bob”
将获得1、1、3
。如果您希望它是1,1,2
,请改用dplyr::densite\u rank
。