Gần đây tôi đã gặp sự cố trong đó mỗi lần đọc tệp csv chứa bảng có giá trị, R đọc nó dưới dạng định dạng danh sách thay vì số. Vì không có luồng nào cung cấp cho tôi toàn bộ câu trả lời cho tình huống của tôi, một khi tôi có thể chạy nó, tôi quyết định đưa vào đây kịch bản làm việc cho tôi với hy vọng rằng nó hữu ích cho ai đó. Dưới đây là, với một số mô tả và một số tùy chọn trong trường hợp bạn cần:Chuyển đổi từ danh sách sang số trong R
(1) Đọc dữ liệu từ tệp csv. Ở đây, file không có tiêu đề, vì vậy tôi đặt F, nếu bạn có một tiêu đề, sau đó thay đổi nó để T.
data <- read.csv("folder_path/data_file.csv", header=F)
(1.a) Lưu ý: Nếu bạn nhận được một cảnh báo nói rằng "không đầy đủ dòng cuối cùng tìm thấy bởi readTableHeader ", điều đó có nghĩa là R không tìm thấy biểu tượng kết thúc tệp. Chỉ cần đặt thêm một dòng trống ở cuối tệp csv và thông báo sẽ không hiển thị lại.
(2) Bạn có thể kiểm tra xem dữ liệu có ở định dạng danh sách không (nếu nó là số, thì bạn đã hoàn tất và không cần thủ tục này!) Với lệnh chế độ.
mode(data)
(3) Khởi tạo một ma trận (như NA), nơi bạn muốn dữ liệu ở định dạng số, sử dụng kích thước của dữ liệu.
dataNum <- matrix(data = NA, nrow = dim(data)[1], ncol = dim(data)[2])
(4) TÙY CHỌN: Nếu bạn muốn thêm tên vào cột và/hoặc hàng, bạn có thể sử dụng tên nếu các tùy chọn này.
(4a) Thêm tên vào các cột và các hàng, giả định rằng mỗi người đều có thông tin tương tự, nói cách khác mà bạn muốn tên được col_1, col_2, ... và row_1, row_2, ...
colnames(dataNum) <- colnames(dataNum, do.NULL = F, prefix = "col_")
rownames(dataNum) <- rownames(dataNum, do.NULL = F, prefix = "row_")
(4b) Nếu bạn muốn tên khác nhau cho mỗi cột và mỗi hàng, sau đó sử dụng tùy chọn này thay thế và thêm tất cả các tên bằng tay.
colnames(dataNum) <- c("col_name_1", "col_name_2")
rownames(dataNum) <- c("row_name_1", "row_name_2")
(5) Chuyển đổi dữ liệu từ danh sách sang dạng số và đặt nó vào dữ liệu ma trậnNum.
for (i in 1:dim(data)[2]) {
dataNum[,i] <- c(as.numeric(data[[i]]))
}
(6) Bạn có thể kiểm tra xem ma trận ở định dạng số có lệnh chế độ hay không.
mode(dataNum)
(7) TÙY CHỌN: Trong trường hợp bạn muốn chuyển ma trận, bạn có thể sử dụng hướng dẫn sau.
dataNum <- t(dataNum)
Không bao gồm câu trả lời trong câu hỏi.Viết vấn đề của chúng tôi mà bạn muốn giải quyết là câu hỏi và gửi câu trả lời dưới dạng câu trả lời thực tế ... – Dason
Tôi nghĩ điều này có thể phù hợp hơn trên blog của bạn hoặc tương tự. Như @ Dason chỉ ra, điều này không thực sự phù hợp với phong cách Hỏi & Đáp của trang web này. Kiểm tra [** faq **] (http://stackoverflow.com/faq) nếu bạn muốn biết chi tiết nếu bạn không chắc chắn về cách đăng bài trên trang web. Mặc dù nỗ lực tốt, chỉ cần chỉnh sửa một chút để tập trung lại thành Giải Đáp. –