Tôi có một khung dữ liệu lớn với thông tin phân loại. Dưới đây là ví dụ:áp dụng strsplit vào cột cụ thể trong một data.frame
> d <- data.frame(x = c(1,2,3,4), classification = c("cl1.scl1", "cl2", "cl3-bla", "cl4.subclass2"))
> d
x classification
1 1 cl1.scl1
2 2 cl2
3 3 cl3-bla
4 4 cl4.subclass2
Trước khi tôi xử lý thêm, tôi phải chia chuỗi phân loại theo "." và lấy mã thông báo đầu tiên. Đây là kết quả tôi cần:
> d
x classification
1 1 cl1
2 2 cl2
3 3 cl3-bla
4 4 cl4
Hiện nay tôi đang tính toán này như sau:
d$classification = unlist(lapply(d$classification, function (x) strsplit(as.character(x), ".", fixed=TRUE)[[1]][1]))
này hoạt động, nhưng nó đã cho tôi nhiều thời gian để con số này ra. Tôi cho rằng có một giải pháp thanh lịch hơn, mà tôi có thể bỏ qua. Bất kỳ đề xuất? Cảm ơn!
Tiêu đề chủ đề của bạn hơi gây hiểu nhầm; điều này không thực sự về việc áp dụng một hàm cho một cột cụ thể, nhưng làm thế nào để thao tác các kết quả từ strsplit. –