Tôi có dataframe này, nó trông như thế này:xâu, Pad và Paste Cột trong Dataframe mà không có một vòng
tôi cần phải thực hiện ký tự đầu tiên từ cột tại, toàn bộ giá trị trong một , sau đó đặt một bộ đếm ở đầu để tăng số lần lặp lại trong cột a. Bộ đếm này phải luôn có độ dài là ba. Kết quả cuối cùng là thế này:
Vì vậy, không có gì ở đây mà ấn tượng, tôi đã có thể làm điều này với đoạn mã sau (chuẩn bị được ấn tượng):
library(stringr)
tk <- ""
for (i in 1:nrow(df)){
if (tk == df$an[i]){
counter <- counter + 1
} else {
tk <- df$an[i]
counter <- 1
}
df$ap[i] <- counter
}
df$ap <- paste0(substr(df$at, 1, 1), df$an, str_pad(df$ap, 3, pad="0"))
Tôi rất không hài lòng với sự thất bại này. Nó có vẻ không phải là rất "R" và tôi muốn rất nhiều không bao giờ để cho phép điều này để xem ánh sáng trong ngày. Làm thế nào tôi có thể làm cho điều này "R" hơn?
Tôi đánh giá cao lời khuyên.
Bạn có thể đăng đầu ra 'dput (DF)' cho ví dụ năm hàng không? – Frank
Tất cả những câu trả lời này đều rất hữu ích trong việc giúp tôi hiểu r tốt hơn. Tôi sẽ học các kỹ thuật cho từng cái này. Nhưng ai nhận được 'câu trả lời' thèm muốn? Tôi có xu hướng chỉ cần đi với những upvotes nhất bởi vì tất cả họ đều tuyệt vời ... và dplyr thắng. – DieselBlue