私はRが初めてです。
参照テーブルから更新したいデータが欠落しているテーブルがあります。
サンプル データ テーブル:
df1=data.frame(id=c(1:5),dob=as.Date(c("1/1/2001"
,"2/2/2002",NA,NA,NA),"%m/%d/%Y"),other_data=paste0("data",seq(1:5)))
ルックアップ テーブルの例:
bd_ref<-data.frame(id=c(1:100),dob=as.Date(rep("1/1/1999"),"%m/%d/%Y"))
結果は次のようになります。
id dob other_data
1 1 2001-01-01 data1
2 2 2002-02-02 data2
3 3 1999-01-01 data3
4 4 1999-01-01 data4
5 5 1999-01-01 data5
最初に欠落しているデータを特定し、次にlookup
この回答に基づいて qdapTools パッケージの関数を使用しようとしました 次のようにRデータフレームに値を挿入する単純なルックアップ:
df1[is.na(df1$dob),"dob"]<-df1[is.na(df1$dob),"id"] %l% d_ref[,c("id","dob")]
しかし、エラーが発生しました:
Error in as.Date.numeric(value) : 'origin' must be supplied
の結果はdf1[is.na(df1$dob),"id"] %l% d_ref[,c("id","dob")]
日付ではなく負の数のようです
[1] -719144 -719144 -719144
これは、この問題を解決するための一般的な正しいアプローチですか? もしそうなら、負の数が返される理由とそれを修正するために何ができるか考えていますか? そうでない場合は、正しいアプローチの提案。