Tạo dữ liệu mẫu:Buộc một cột của danh sách vào một chuỗi trong một khung R dữ liệu
id <- c(12, 32, 42, 42, 52, 52, 67, 67)
relationship_id <- c(15,1,59,1,61,6,59,1)
sample.data <- data.frame(id,relationship_id)
Đối với mỗi id xuất hiện nhiều hơn một lần, nối các relationship_id:
combo <- aggregate(relationship_id ~ id, data = sample.data, paste, sep=",")
table(combo$relationship_id)
Error in table(combo$relationship_id) :
all arguments must have the same length
tôi đã tìm ra những gì gây ra lỗi này:
class(combo$relationship_id)
[1] "list"
Nhưng khi tôi cố gắng và ép buộc các vector danh sách để một vector nhân vật:
combo["relationship_id"] <- lapply(combo["relationship_id"], as.character)
> head(combo)
id relationship_id
1 12 15
2 32 1
3 42 c("59", "1")
4 52 c("61", "6")
5 67 c("59", "1")
Nó bao gồm cú pháp nối ... Tôi hiểu rằng tôi có thể phân tích đầu ra để có thể sử dụng được, nhưng tại sao điều này lại xảy ra? Có cách nào dễ dàng hơn để làm sạch đầu ra không?
Thay đổi 'sep' thành' collapse' và bạn sẽ có thể thực hiện những gì bạn mong đợi. – A5C1D2H2I1M1N2O1R2T1
Làm việc tốt với câu hỏi có thể tái sản xuất làm câu hỏi đầu tiên của bạn về SO. (+1) – A5C1D2H2I1M1N2O1R2T1