Tôi mới trên R và tôi có một data.frame, được gọi là "CT", có chứa một cột có tên là "ID" có chứa hàng trăm số nhận dạng khác nhau (đây là những bệnh nhân). Hầu hết các số xuất hiện một lần, nhưng một số khác xuất hiện hai hoặc ba lần (do đó, ở các hàng khác nhau). Trong data.frame CT, tôi muốn chèn một biến mới, được gọi là "countID", sẽ cho biết số lần xuất hiện của những bệnh nhân cụ thể này (nhiều bản ghi vẫn xuất hiện nhiều lần). Tôi đã thử hai chiến lược khác nhau sau khi đọc diễn đàn này: 1 chiến lược:đếm số lần xuất hiện trong cột và tạo biến trong R
CT <- cbind(CT, countID=sequence(rle(CT.long$ID)$lengths)
Nhưng công việc doesnt này, tôi nhận được chỉ có một số. chiến lược thứ 2: tạo ra một khung dữ liệu với hai cột (một là ID, một là đếm) và trận đấu dataframe này với CT:
tabs <- table(CT.long$ID)
out <- data.frame(item=names(unlist(tabs)),count=unlist(tabs)[],stringsAsFactors=FALSE)
rownames(out) = c()
head(out)
# item count
# 1 1.312 1
# 2 1.313 2
# 3 1.316 1
# 4 1.317 1
# 5 1.321 1
# 6 1.322 1
Vì vậy, đây hoạt động tốt nhưng tôi không thể làm tan chảy hai data.frames: các số hàng không khớp giữa "out" và "CT" (trong số đó có ít hàng hơn). Có thể ai đó có giải pháp thanh lịch để thêm số lần xuất hiện trực tiếp vào CT dữ liệu, hoặc khớp chính xác với hai data.frames? Cảm ơn trước, Denis
+1 cho cho thấy đầu vào và đầu ra mong đợi, nhưng tiếp theo thời gian bạn đăng, tạo ví dụ của bạn [** reproducible **] (http://stackoverflow.com/q/5963269/1478381) bằng cách bao gồm một số dữ liệu. chào mừng bạn đến với SO! –