0
私は他の誰かのコードを使って作業しています。私が実行しているコードのこの部分は空のdata.tableを返すようですが、これは理想的ではありません。以下のコードを実行することができます。サブセット化された空のデータテーブルを返す
url = "http://www.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ensoyears.shtml"
page <- readLines(url)
ONI_data_raw <- data.table (readHTMLTable(page, which=8))
headers <- c ("Year", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
setnames(ONI_data_raw, headers)
ONI_data_raw = melt(ONI_data_raw, id.vars = "Year")
names(ONI_data_raw)[2] = "Month"
names(ONI_data_raw)[3] = "ONI_Value"
ONI_data_raw$Month = as.numeric(ONI_data_raw$Month)
ONI_data_raw$ONI_Value= as.numeric(ONI_data_raw$ONI_Value)
ONI_data_raw = subset(ONI_data_raw, ONI_data_raw$Year %in% time)
head(ONI_data_raw)
私が得る結果は次のとおりです。理想的には私が見たいものを
Empty data.table (0 rows) of 3 cols: Year,Month,ONI_Value
、このようなものです:私は、これは、コードのゴールだったと仮定し
Year Jan Feb March etc.
1950 -1.4 -1.2 -1.1
1951 -0.8 -0.6 -0.2
が、 3行目から最後の行(サブセットになる前)を実行すると、出力は一種のファンキーになります
Year Month ONI_Value
1: 1950 1 -1.4
2: 1951 1 -0.8
3: 1952 1 0.5
4: 1953 1 0.5
5: 1954 1 0.7
6: 1955 1 -0.6
7: 1956 1 -0.9
8: 1957 1 -0.3
9: 1958 1 1.7
10: 1959 1 0.6
11: Year 1 NA
12: 1960 1 -0.1
ここで、行11は奇数です。いくつかの行が同様にそれを行います。それが問題を引き起こしているかどうかは分かりませんが、最後の2行目から最後の行が実行されると、データテーブルが空になります。
洞察力は役立ちます。