14

私がする必要があるのは、何百ものリンクからデータを読み取ることです。その中には、ここのコードのように、一部のリンクにはデータが含まれていません。

urls <-paste0("http://somelink.php?station=",station, "&start=", Year, "01-01&etc")
myData <- lapply(urls, read.table, header = TRUE, sep = '|')

「入力に行がありません」というエラーが表示されます。「try」を使用してみましたが、同じエラーが発生しました。よろしくお願いします。

4

2 に答える 2

25

考えられる解決策は次の2つです(例が再現できないため、テストされていません)。

使用try

myData <- lapply(urls, function(x) {
  tmp <- try(read.table(x, header = TRUE, sep = '|'))
  if (!inherits(tmp, 'try-error')) tmp
})

使用tryCatch

myData <- lapply(urls, function(x) {
  tryCatch(read.table(x, header = TRUE, sep = '|'), error=function(e) NULL)
})
于 2012-11-28T19:57:31.837 に答える
0

これは役に立ちますか?

  dims <- sapply(myData, dim)[2,]
  bad_Ones <- myData[dims==1]
  good_Ones <- myData[dims>1]

myDataそれでもステーションページから何かを取得する場合は、上記のコードでmyDataリストを2つの別々のグループに分ける必要があります。 good_Ones一緒に作業したいリストになります。(もちろん、上記が正確であると仮定します)

于 2012-11-28T20:32:56.010 に答える