Tôi đang cố gắng sử dụng lapply trên danh sách các khung dữ liệu; nhưng thất bại trong việc truyền các tham số một cách chính xác (tôi nghĩ).Sử dụng lapply để thay đổi tên cột của danh sách khung dữ liệu
Danh sách khung dữ liệu:
df1 <- data.frame(A = 1:10, B= 11:20)
df2 <- data.frame(A = 21:30, B = 31:40)
listDF <- list(df1, df2,df3) #multiple data frames w. way less columns than the length of vector todos
Vector với tên cột:
todos <-c('col1','col2', ......'colN')
Tôi muốn thay đổi tên cột bằng lapply:
lapply (listDF, function(x) { colnames(x)[2:length(x)] <-todos[1:length(x)-1] } )
nhưng doesn này 't thay đổi tên ở tất cả. Tôi không đi qua các khung dữ liệu, nhưng cái gì khác? Tôi chỉ muốn thay đổi tên, không trả lại kết quả cho một đối tượng mới.
Xin cảm ơn trước, tr.
sẽ không làm việc vì gọi điện thoại * R bằng giá trị * – jogo
Chỉ cần thêm một 'x' đến cuối 'lapply (listDF, function (x) {colnames (x) [2: chiều dài (x)] < -todos [1: length (x) -1]; x}) '. Hàm của bạn như được viết không có giá trị trả về. –
Không liên quan đến câu hỏi, nhưng tôi đoán rằng '1: length (x) -1' là một lỗi phổ biến (đôi khi không có hại). Dòng bên phải là '1: (length (x) -1)' (ưu tiên phần mềm!) – nicola