3 つの企業 (ciknum 変数) と各企業が年次報告書を提出した年 (fileyear) を含む「テスト」データフレームがあります。
ciknum fileyear
1 1408356 2013
2 1557255 2013
3 1557255 2014
4 1557255 2015
5 1557255 2016
6 1557255 2017
7 1555538 2014
8 1555538 2015
9 1555538 2016
10 1555538 2017
これらの 2 つの列は数値です。
> is.numeric(test$ciknum)
[1] TRUE
> is.numeric(test$fileyear)
[1] TRUE
ただし、1 つのサイトから年次報告書をダウンロードするには、ciknum-fileyear のペアごとにループする必要があります。このループでは、ダウンロードを成功させるために数値変数が必要ですが、取得できないようです。たとえば、次のループを作成すると (変数会社または年に対して、数値変数ではないことがわかります)。
for (row in 1:nrow(test)){
firm <- test[row, "ciknum"]
year <- test[row, "fileyear"]
my_getFilings(firm, '10-K', year, downl.permit="y") #download function over firm-year
}
Error: Input year(s) is not numeric #error repeated 10 times (one per row)
新しいDF会社と年が数値であるかどうかを確認しましたが、証拠が混在しています。一方では、年を数値変数として読み取るようです。
> for (row in 1:nrow(test)){
+ firm <- test[row, "ciknum"]
+ year <- test[row, "fileyear"]
+
+ if(year>2015) {
+ print(paste("I have this", firm, "showing a numeric", year))
+ }
+ }
[1] "I have this 1557255 showing a numeric 2016" #it only states years>2015. Seems it reads a number
[1] "I have this 1557255 showing a numeric 2017"
[1] "I have this 1555538 showing a numeric 2016"
[1] "I have this 1555538 showing a numeric 2017"
しかし一方で、そうではないようです:
> for (row in 1:nrow(test)){
+ firm <- test[row, "ciknum"]
+ year <- test[row, "fileyear"]
+
+ if(!is.numeric(year)) {
+ print(paste("is not numeric"))
+ }
+ }
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
[1] "is not numeric"
これらが数値変数かどうか教えてもらえますか? これで迷ってしまいました… 私のダウンロード関数「my_getFilings」はそれに依存しているようです。前もって感謝します。