0
ラベルをデータフレーム内の列で指定された範囲の値に割り当てるコードを更新しようとしています。私はmatch
を使用しています。これは、列間の正確な一致についてのみラベルを割り当てます。範囲を照合してラベルを割り当てるには、これをどのように変更しますか? サンプルコードは次のとおりです。あなたがmatch
を使用して見ることができるように値がインターバル内にあるときにmatch()を使用してラベルを割り当てる
library(dplyr)
a<- data.frame(source=c(1,25,41,36,45, 19), name=c("stop", "halt", "go","think","talk","sit"))
d<- a$source
t<- 0.2
al<- a$source- t
ah<- a$source + t
b= data.frame(source= c(1:50,1.1:50.1))
v=c(rbind(sort(al),ah[order(al)]))
v
c<-b %>% rowwise() %>% filter(sum((source>al)*(source<ah))>0) %>% ungroup() #thank to @lamia
c$name<-a$name[match(c$source,a$source)] # problem
c$name
は、正確なラベル二つのソースの間で一致しました。 "1"が "1.1"に受信するラベルは、同じ間隔に入るので、割り当てることが可能ですか?
ありがとうございます。
両方のソースで 'integer()'や 'round()'のようなものを適用するだけです。何かこれは次のようなものです: 'C $ name <-a $ name [整数($ソース)の整数(整数)]' – Masoud
'round()'が働いていました。 ありがとうございます。 –
任意の範囲(整数だけでなく)で動作するより一般的な回答が必要な場合は、それに基づいて「切り取り」と一致する指標を作成することができます。 – Barker