Url sau có số liệu và bảng, và tôi muốn đọc hai cột đầu tiên của bảng. Lệnh xpatahSApply đang hoạt động tốt, nhưng tôi cần điều kiện trên nhiều hơn hai thuộc tính và tôi không thể tìm ra.trích xuất dữ liệu bằng cách sử dụng tính năng XPathSApply trên nhiều thuộc tính
url ="http://floodobservatory.colorado.edu/SiteDisplays/1544data.htm"
doc=htmlTreeParse(url,useInternal=TRUE)
mẫu của các dữ liệu phân tích cú pháp
<tr height="20" style="height:15.0pt">
<td height="20" class="xl6521398" align="right" style="height:15.0pt">11-Oct-13</td>
<td class="xl7321398">1853</td>
<td class="xl7321398"></td>
<td class="xl8121398">0.80</td>
<td class="xl7221398" align="right">4.87</td>
<td class="xl1521398"></td>
<td class="xl1521398"></td>
<td class="xl1521398"></td>
<td class="xl1521398"></td>
<td class="xl1521398"></td>
<td class="xl1521398"></td>
<td class="xl7421398"></td>
<td class="xl7421398"></td>
<td class="xl7421398"></td>
<td class="xl7421398"></td>
<td class="xl9621398"></td>
<td class="xl7421398"></td>
<td class="xl8121398"></td>
</tr>
tôi cần phải đọc các giá trị từ hai tế bào trong đó có một tương ứng với ngày và một trong những khác tương ứng với dòng chảy xả và đã đề cập dưới đây thuộc tính
<td height="20" class="xl6521398" ...> and [<td class="xl7321398"..]
liên quan đến dữ liệu mẫu ở trên, tôi cần lấy "1 1-Oct-13 "và" 1853 ".
Tôi đã sử dụng các lệnh sau để nhận 'ngày' và 'xả luồng'.
dates=xpathSApply(doc,"//td[@class='xl6521398']",xmlValue)
streamflowdischarge=xpathSApply(doc,"//td[@class='xl7321398']",xmlValue)
Chúng trích xuất thành công thông tin, nhưng giá trị trích xuất bao gồm các giá trị từ các bảng/ô khác và quan trọng là 'ngày' và 'xả luồng' không tương ứng.
ngày [1:10] [1] "1-Jan-98" "2-Jan-98" "3-Jan-98" "31-Mar-98" "4-Jan-98 "" 30-Apr-98 "" 5-Jan-98 " [8]" 31-May-98 "" 6-Jan-98 "" 30-Jun-98 "
" 31-Mar -98" là giữa "3-Jan-98" và "4-Jan-98" - một cái gì đó ngoài ý muốn
streamflowdischarge [01:10] [1] "3108" "3076" "3051" "3111 "" 3064 "" 3043 "" 3007 "" 3066 "" 378 "" "
"3108" không tương ứng với "1-Jan-98" - có thể được kiểm tra tại các url
Dường như có bảng/tế bào với cùng một thuộc tính, mà tôi không muốn đọc/lấy. Về vấn đề này, tôi nghĩ tôi cần phải vượt qua toàn bộ thuộc tính, ví dụ:
<td height="20" class="xl6521398" align="right" style="height:15.0pt">
để có được những 'date', và bằng cách nào đó tôi nên đặt điều kiện như vậy mà 'xả dòng chảy' từ cùng một bảng được chiết xuất.
Rất nhiều đánh giá cao đề xuất và cũng có thể có các tùy chọn khác.
tôi đã cố gắng readHTMLTable, nhưng có một lỗi "subscript ngoài giới hạn"
Cảm ơn, Satish
Giải pháp rất chi tiết, đã giúp tôi rất nhiều. Tôi đoán quá rằng trang web có thể đã tạo bằng bảng excel. Bất kỳ ý tưởng nào tại sao có nhiều ô trong một hàng có cùng giá trị lớp? Câu hỏi khác là: loại tập dữ liệu này tạo ra bảng các hàng và các ô nhưng nội dung sẽ không được lưu dưới dạng nút con? Mã khác, liên quan đến Summary5.htm, cũng hữu ích. Số lượng lớn thông tin – SatishR
@ SatishR Tôi không biết cách bảng tính xác định giá trị của lớp. Tôi không chắc chắn những gì bạn có nghĩa là bởi 'nội dung sẽ không được lưu như các nút trẻ em', xin lỗi. –