Sau khi nhập một bảng từ Wikipedia, tôi có một danh sách các giá trị của các hình thức sau đây:Tôi có thể sử dụng gsub() trên mỗi phần tử của một khung dữ liệu không?
> tbl[2:6]
$`Internet
Explorer`
[1] "30.71%" "30.78%" "31.23%" "32.08%" "32.70%" "32.85%" "32.04%" "32.31%" "32.12%" "34.07%" "34.81%"
[12] "35.75%" "37.45%" "38.65%" "40.63%" "40.18%" "41.66%" "41.89%" "42.45%" "43.58%" "43.87%" "44.52%"
$Chrome
[1] "36.52%" "36.42%" "35.72%" "34.77%" "34.21%" "33.59%" "33.81%" "32.76%" "32.43%" "31.23%" "30.87%"
[12] "29.84%" "28.40%" "27.27%" "25.69%" "25.00%" "23.61%" "23.16%" "22.14%" "20.65%" "19.36%" "18.29%"
tôi đang cố gắng để thoát khỏi những dấu hiệu phần trăm, để chuyển đổi dữ liệu sang dạng số.
Có cách nào nhanh hơn để làm sạch dữ liệu này hơn là đi vectơ hóa không? mã hiện tại của tôi sau:
data <- lapply(tbl[2:6], FUN = function(x) as.numeric(gsub("%", "", x)))
Dữ liệu cuối cùng trở thành một khung dữ liệu, nhưng tôi không thể có được gsub
để hoạt động đúng trên tất cả các yếu tố của một khung dữ liệu. Có cách nào để gsub() mỗi phần tử của một khung dữ liệu không?
The code for the project is online, with results. Cảm ơn bạn trước!
Đó là nhiều khả năng chỉ là một danh sách hơn một khung dữ liệu. Và ... lapply cũng sẽ làm việc với dataframes vì chúng thực sự là danh sách với các thuộc tính đặc biệt. –
Đây là danh sách. Nhưng 'gsub' không hoạt động khi tôi cần nó trên nó (' lapply' hoạt động tốt). –
Bởi vì data.frames là các danh sách đặc biệt và bạn có một phương pháp thử nghiệm cho danh sách, điều này hầu như chắc chắn sẽ hoạt động: 'dfrm <- as.data.frame (lapply (tbl [2: 6], FUN = function (x) as .numeric (gsub ("%", "", x)))) ' –