Rセクションへようこそ!
私はあなたのデータの種類やデータの比較の目的を正確にはわかりません。しかし、ここで
あなたは(わずかに異なる出力を持つ)、その情報を見つけることができるいくつかの方法があります。
xdat<-c(10,13,32,17)
ydat<-c(32,17,10,5,19)
> which(xdat %in% ydat)
[1] 1 3 4
> match(xdat,ydat)
[1] 3 NA 1 2
> xdat %in% ydat
[1] TRUE FALSE TRUE TRUE
> unlist(sapply(xdat,function(x) grep(x,ydat)))
[1] 3 1 2
また、this short R reference cardは異なる操作のための機能を発見するのに役立つ可能性があります。
実行中の問題とその理由を知るのは難しいです。例えば、あなたの値に表示された桁数をoptions(digits=7)
で変更して原因を見つけることができます。
さらに、あなたは以下の例を参照してください、あなたのデータに応じて、round
とsignif
機能を使用することができます。
> round(123.786582307,digits=8)%in%round(123.786582308,digits=8)
[1] TRUE
> round(3.786582307,digits=8)%in%round(3.786582308,digits=8)
[1] TRUE
> signif(123.786582307,digits=11)%in%signif(123.786582308,digits=11)
[1] TRUE
> signif(3.786582307,digits=9)%in%signif(3.786582308,digits=9)
[1] TRUE
親愛なるnadizanはしかし、私はあなた言及した機能を使用し、あなたの答えをありがとうございました。そうです、彼らはこの種のデータを扱っています。私のデータから分かるように、ドット(。)の後には9桁の数字を持つような大きな小数点の値が含まれています。この値を123.786582307と123.786582308と比較すると、データは生成されません。私はround()関数を使っています。運がない。ありがとうございます – Muzo583
どのようにデータを生成しましたか?どのように数字が異なるのでしょうか?それはあなたの期待ですか?あなたのマッチングにはどんな正確さがありますか?上記の例を参照してください。@ user6729255 – nadizan
それは働いた!ありがとうナディザン! #1 "3"は、列1:3を含む。 lidar [、13:14] < - round(lidar [、1:3] 13:14]、digits = 3) < - which(groundar $ X%in%groundT $ X&lidar $ Y%in%groundT $ Y) – Muzo583