Tôi có một số mã R mà thực hiện một số hoạt động khai thác dữ liệu trên tất cả các file trong thư mục hiện hành, sử dụng đoạn mã sau:Trích xuất đầu ra từ lapply đến một dataframe
files <- list.files(".", pattern="*.tts")
results <- lapply(files, data_for_time, "17/06/2006 12:00:00")
Kết quả từ lapply là như sau (trích sử dụng dput()
) - cơ bản là một danh sách đầy đủ của các vectơ:
list(c("amer", "14.5"), c("appl", "14.2"), c("brec", "13.1"),
c("camb", "13.5"), c("camo", "30.1"), c("cari", "13.8"),
c("chio", "21.1"), c("dung", "9.4"), c("east", "11.8"), c("exmo",
"12.1"), c("farb", "14.7"), c("hard", "15.6"), c("herm",
"24.3"), c("hero", "13.3"), c("hert", "11.8"), c("hung",
"26"), c("lizr", "14"), c("maid", "30.4"), c("mart", "8.8"
), c("newb", "14.7"), c("newl", "14.3"), c("oxfr", "13.9"
), c("padt", "10.3"), c("pbil", "13.6"), c("pmtg", "11.1"
), c("pmth", "11.7"), c("pool", "14.6"), c("prae", "11.9"
), c("ral2", "12.2"), c("sano", "15.3"), c("scil", "36.2"
), c("sham", "12.9"), c("stra", "30.9"), c("stro", "14.7"
), c("taut", "13.7"), c("tedd", "22.3"), c("wari", "12.7"
), c("weiw", "13.6"), c("weyb", "8.4"))
Tuy nhiên, tôi muốn sau đó đối phó với sản lượng này như một dataframe với hai cột: một cho mã chữ cái ("amer"
, "appl"
vv) và một cho t anh ấy số (14.5
, 14.2
v.v.).
Thật không may, as.data.frame
dường như không hoạt động với đầu vào này của vectơ lồng nhau bên trong danh sách. Làm thế nào tôi nên đi về việc chuyển đổi này? Tôi có cần thay đổi cách chức năng của tôi data_for_time
trả về giá trị của nó không? Hiện tại, nó chỉ trả lại c(name, value)
. Hoặc là có một cách tốt đẹp để chuyển đổi từ loại đầu ra đến một dataframe?
Nếu bạn đã sử dụng 'sapply' thay vì lapply' bạn có thể đã nhận được một đối tượng' hơn "bình thường". –