为列R中的每个重复值分配唯一的ID号

洛兹

我有一个数据框:

df<-data.frame(Name=c('H001', 'H002', 'H003', 'H004', 'H005', 'H006',
                      'H007', 'H008', 'H009', 'H0010'),
               Room1=rnorm(10,0.4,0.5),
               Room2=rnorm(10,0.3,0.5),
               Room3=rnorm(10,0.7,0.5),
               Weight=sample(1:20,10))

我使用以下方法将Name每个值乘以其加权因子(Weight):

weighted_df <- data.frame(df[rep(seq_len(dim(df)[1]), df$Weight), c(1,2,3,4), drop = FALSE], row.names=NULL)

但我想添加第5列ID,以便可以使用唯一的名称ID组合来标识每一行产生的df应该看起来像;

     name      Room1      Room2     Room3 ID 
1    H001  0.4390566  0.7158113 0.7400785 1
2    H001  0.4390566  0.7158113 0.7400785 2
3    H001  0.4390566  0.7158113 0.7400785 3
4    H001  0.4390566  0.7158113 0.7400785 4
5    H001  0.4390566  0.7158113 0.7400785 5
6    H001  0.4390566  0.7158113 0.7400785 6
7    H001  0.4390566  0.7158113 0.7400785 7
8    H001  0.4390566  0.7158113 0.7400785 8
9    H001  0.4390566  0.7158113 0.7400785 9
10   H001  0.4390566  0.7158113 0.7400785 10
11   H001  0.4390566  0.7158113 0.7400785 11
12   H001  0.4390566  0.7158113 0.7400785 12
13   H001  0.4390566  0.7158113 0.7400785 13
14   H001  0.4390566  0.7158113 0.7400785 14
15   H001  0.4390566  0.7158113 0.7400785 15
16   H001  0.4390566  0.7158113 0.7400785 16
17   H001  0.4390566  0.7158113 0.7400785 17
18   H002  0.4041108 -0.1668988 0.6594539 1
19   H002  0.4041108 -0.1668988 0.6594539 2
20   H002  0.4041108 -0.1668988 0.6594539 3

提前致谢。

阿克伦

可以使用 rowid

library(data.table)
library(dplyr)
weighted_df %>% 
   mutate(ID = rowid(Name))

-输出

#     Name        Room1       Room2        Room3 ID
#1    H001  0.579649851  0.84602529  0.620850211  1
#2    H001  0.579649851  0.84602529  0.620850211  2
#3    H001  0.579649851  0.84602529  0.620850211  3
#4    H001  0.579649851  0.84602529  0.620850211  4
#5    H001  0.579649851  0.84602529  0.620850211  5
#6    H001  0.579649851  0.84602529  0.620850211  6
#7    H001  0.579649851  0.84602529  0.620850211  7
#8    H001  0.579649851  0.84602529  0.620850211  8
#9    H001  0.579649851  0.84602529  0.620850211  9
#10   H001  0.579649851  0.84602529  0.620850211 10
#11   H001  0.579649851  0.84602529  0.620850211 11
#12   H001  0.579649851  0.84602529  0.620850211 12
#13   H001  0.579649851  0.84602529  0.620850211 13
#14   H001  0.579649851  0.84602529  0.620850211 14
#15   H001  0.579649851  0.84602529  0.620850211 15
#16   H001  0.579649851  0.84602529  0.620850211 16
#17   H001  0.579649851  0.84602529  0.620850211 17
#18   H002  1.457267473 -1.18612874  0.553957293  1
#19   H002  1.457267473 -1.18612874  0.553957293  2
# ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为列中的每个唯一值分配值

如何为表中的列中的每个重复值分配唯一值

为其他列中的每个唯一值分配新值

根据值的每个新实例分配唯一的ID,并为后续的重复值分配相同的ID

如何为列中的每组相同值分配唯一的ID号

R-为列表中的每个Spatial_DataFrame元素分配唯一ID

根据R中各行之间的时间差为每个组分配唯一的ID

在R中的数据框中为每个ID保留唯一值

为表格中的每个唯一值添加随机ID

如何为每个对应的唯一列值分配唯一ID?

在 R 中,指示另一列的每个 ID 是否具有多个唯一值

将DataFrame中的每个唯一值重塑为列

根据两列的EITHER中的值分配唯一的ID

基于 R 中每个唯一 ID 具有多个值的列创建标志

为列中的每个唯一值生成唯一列

如何在JavaScript代码中为每个div分配一个唯一的ID?

为列表中的每个唯一值分配一个数字

MySQL为每个ID选择重复的行(基于列)(不是唯一的)

为其他表中的每个唯一 ID 重复左表中的所有行

使用 r 中的循环根据连续行中的值之间的某些差异为记录分配唯一 ID

为列表中的每个data.frame元素分配唯一的ID

在基于Spring的Web应用程序中为每个请求分配唯一的ID

熊猫-为分组数据中的每个组分配唯一ID

将一列的每个唯一值与其他列R中的每个唯一值求和

如何在Pandas中为每个唯一行值删除重复项?

如何将唯一的重复列折叠为 R 中的唯一列?

为每个唯一 id 获取列的最后更改值的第一次出现

为给定列中的每个唯一元素重复 DataFrame 的元素

旋转/数据透视表以在分组列中为每个唯一值制作一列