我有一个数据框(all_data),其中我有一个网站列表(1…到n)和他们的分数,例如.

  site  score
     1    10
     1    11  
     1    12
     4    10 
     4    11
     4    11
     8    9
     8    8
     8    7

我想创建一个列,以数字顺序对网站的每个级别进行编号,比如计数器.在本例中,站点(1、4和8)将在"数字"列中有一个从1到3的对应计数器:

site  score number
     1    10    1
     1    11    1 
     1    12    1 
     4    10    2
     4    11    2
     4    11    2
     8    9     3
     8    8     3 
     8    7     3

我相信这一定很容易解决,但我还没有找到办法.

推荐答案

试试Data$number <- as.numeric(as.factor(Data$site))

旁注:我和@Chase的解与@DWin的解之间的区别在于数字的顺序.as.factorfactor都会自动对级别进行排序,而在@DWin的解决方案中不会出现这种情况:

Dat <- data.frame(site = rep(c(1,8,4), each = 3), score = runif(9))

Dat$number <- as.numeric(factor(Dat$site))
Dat$sitenum <- match(Dat$site, unique(Dat$site) ) 

给予

> Dat
  site     score number sitenum
1    1 0.7377561      1       1
2    1 0.3131139      1       1
3    1 0.7862290      1       1
4    8 0.4480387      3       2
5    8 0.3873210      3       2
6    8 0.8778102      3       2
7    4 0.6916340      2       3
8    4 0.3033787      2       3
9    4 0.6552808      2       3

R相关问答推荐

替换收件箱的子集(行和列)

如何在列表的子元素上使用setName

如何将log 2刻度上的数字转换为自然log

如何在热图中绘制一个图形,但在每个单元格中通过饼形图显示?

如何替换R中数据集列中的各种字符串

随机森林回归:下拉列重要性

ggplot2中的X轴显示数值,单位为百,而不是十

在R中将特定列的值向右移动

R根据条件进行累积更改

使用外部文件分配变量名及其值

汇总数据帧中的复制列,保持行的唯一性

将箭头绘制在图形外部,而不是图形内部

将多个变量组合成宽格式

在不对R中的变量分组的情况下取两行的平均值

在散点图中使用geom_point放置线图例

以任意顺序提取具有多个可能匹配项的组匹配项

如何在GALT包的函数&geom_x样条线中调整线宽

TidyVerse中长度不等的列结合向量

我正在try 创建一个接近cos(X)的值的While循环,以便它在-或+1-E10范围内

使用LAG和dplyr执行计算,以便按行和按组迭代