0
データベースのダンプをHTMLテーブルの形式で持っています。 私の問題は、小数点文字としてカンマを使用し、正しく処理するためにreadHTMLTableを取得できないということです。値は数値ではなく因子として終わります。これは外部から解決することができますが、私はすべてRでそれをしたいと思います。readHTMLTableで10進数のカンマでデータを読み取る
私はを実行しようとしましたが、実行パイプの下を通過しても動作しないことを願っていました。
次のトレストは、私がelFun
library(XML)
tryAsNumeric <- function(node) {
val = xmlValue(node)
ans = as.numeric(gsub(",", ".", val))
if(is.numeric(ans))
ans
else
val
}
tmp_list <- readHTMLTable("teeChart.xls", elFun = tryAsNumeric)
を使用してみましたし、このメッセージ簡潔にするため
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In (function (node) ... : NAs introduced by coercion
2: In (function (node) ... : NAs introduced by coercion
3: In (function (node) ... : NAs introduced by coercion
4: In (function (node) ... : NAs introduced by coercion
切り捨てられたリストになってしまったreadHTMLTableのヘルプからインスピレーションを得ました。
ここには再現性のための縮小表があります。 (teeChart.xls)
<table border="1">
<tr><td></td><td>Lägenhet 053</td><td></td><td>Lägenhet 054</td><td></td><td>Lägenhet 055</td><td></td></tr>
<tr><td>Index</td><td>X</td><td>Y</td><td>X</td><td>Y</td><td>X</td><td>Y</td></tr>
<tr><td>0</td><td>42309</td><td>20,8249988555908</td><td>42309</td><td>20,2000007629395</td><td>42309</td><td>22,2000007629395</td></tr>
<tr><td>1</td><td>42309,0416666667</td><td>20,7000007629395</td><td>42309,0416666667</td><td>20,2000007629395</td><td>42309,0416666667</td><td>22,125</td></tr>
<tr><td>2</td><td>42309,0833333333</td><td>20,6000003814697</td><td>42309,0833333333</td><td>20,2000007629395</td><td>42309,0833333333</td><td>22,0249996185303</td></tr>
</table>
colClasses率対数値の問題を解決しているようです。それでも、私は強制的にNAの導入について警告します。また、データベース全体の担当者の変数数もわかりません。 –
Imhoさんは 'readHTMLTable'を忘れて、「古い学校」にしています - 私の編集を見てください。 – lukeA