Tôi có một khung dữ liệu với một số cột. Tôi muốn tạo một cột mới có tên là "id" cung cấp số id duy nhất cho mỗi nhóm các giá trị giống hệt nhau trong cột "mẫu".Cách chỉ định một số ID duy nhất cho mỗi nhóm giá trị giống hệt nhau trong một cột
dữ liệu Ví dụ:
# dput(df)
df <- structure(list(index = 1:30, val = c(14L, 22L, 1L, 25L, 3L, 34L,
35L, 36L, 24L, 35L, 33L, 31L, 30L, 30L, 29L, 28L, 26L, 12L, 41L,
36L, 32L, 37L, 56L, 34L, 23L, 24L, 28L, 22L, 10L, 19L), sample = c(5L,
6L, 6L, 7L, 7L, 7L, 8L, 9L, 10L, 11L, 11L, 12L, 13L, 14L, 14L,
15L, 15L, 15L, 16L, 17L, 18L, 18L, 19L, 19L, 19L, 20L, 21L, 22L,
23L, 23L)), .Names = c("index", "val", "sample"), class = "data.frame",
row.names = c(NA, -30L))
head(df)
index val sample
1 1 14 5
2 2 22 6
3 3 1 6
4 4 25 7
5 5 3 7
6 6 34 7
Những gì tôi muốn kết thúc với:
index val sample id
1 1 14 5 1
2 2 22 6 2
3 3 1 6 2
4 4 25 7 3
5 5 3 7 3
6 6 34 7 3
Tình yêu nó: một sử dụng cho ' các yếu tố mà tôi có thể hiểu được. :-) –
Chỉ cần một lưu ý nhỏ ở đây: phương thức 'as.numeric (factor (sample))' sẽ chỉ dẫn đến một chuỗi số giảm dần nếu 'sample' đã được đặt hàng. –
điều tốt đẹp về giải pháp 'factor()' là nó bỏ qua các giá trị 'NA' –