Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用match()在值落在某个间隔内时指定标签_R_Dplyr_Match - Fatal编程技术网

R 使用match()在值落在某个间隔内时指定标签

R 使用match()在值落在某个间隔内时指定标签,r,dplyr,match,R,Dplyr,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-

我正在尝试更新代码,以便将标签指定给数据框中某列指定的范围内的值。我使用的是
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
库(dplyr)

a必须在两个源上应用类似于
integer()
round()
的内容。类似这样:
c$name
round()
有效。我完全没有想过。无缘无故地使事情复杂化了。谢谢。如果你想得到一个更一般的答案,它适用于任何范围(不仅仅是整数),你可以创建一个带有
cut
的指示器,并基于此进行匹配。只需在两个源上应用类似
integer()
round()
的内容即可。类似这样:
c$name
round()
有效。我完全没有想过。无缘无故地使事情复杂化了。谢谢你。如果你想要一个更一般的答案,它适用于任何范围(不仅仅是整数),你可以创建一个带有
cut
的指示器,并基于此进行匹配。