require('fortunes')
fortune('106')
Personally I have never regretted trying not to underestimate my own future stupidity.
-- Greg Snow (explaining why eval(parse(...)) is often suboptimal, answering a question triggered
by the infamous fortune(106))
R-help (January 2007)
Vì vậy nếu eval(parse(...))
là tối ưu hóa một cách khác để thực hiện điều này là gì?R: eval (phân tích (...)) thường thấp hơn số tối thiểu
Tôi đang gọi một số dữ liệu từ trang web sử dụng RCurl, những gì tôi nhận được sau khi sử dụng fromJSON()
trong gói rjson là danh sách trong danh sách. Một phần của danh sách có tên của một số thứ tự sẽ thay đổi tùy thuộc vào thứ tự. Danh sách này trông giống như sau:
$orders
$orders$'5810584'
$orders$'5810584'$quantity
[1] 10
$orders$'5810584'$price
[1] 15848
tôi muốn trích xuất các giá trị trong $orders$'5810584'$price
Giả sử danh sách là trong đối tượng dat
. Những gì tôi đã làm để trích xuất điều này bằng cách sử dụng eval(parse(...))
là:
or_ID <- names(dat$orders) # get the order ID number
or_ID
"5810584"
sell_price <- eval(parse(text=paste('dat$',"orders$","'", or_ID, "'", "$price", sep="")))
sell_price
15848
Điều gì sẽ là cách tối ưu hơn để làm điều này?
dat $ orders [[or_ID]] $ price? – Dason
không hoạt động vì or_ID là ký tự chứ không phải là số. Sử dụng, dat $ orders [[1]] $ price sẽ hoạt động – Kevin
Sử dụng 'match' để lấy vị trí của tên trong' tên (dat $ orders) '. – joran