我有一个变量“ PULocation”,它是一组从1到265的整数。每个数字代表纽约市中的唯一位置。然后,每个位置都位于“布朗克斯”,“布鲁克林”,“ ERW”,“曼哈顿”,“女王”,“史坦顿岛”或“未知”之一。在我的数据集中,我只有由整数定义的PULocation变量,并且我有单独的信息来知道每个整数代表什么。我想创建一个单独的变量来定义自治市镇而不是特定位置,问题是整数不是由自治市镇组织的,它们是分散的。香港专业教育学院包括下面的映射,以显示我要解释的内容。
我已经尝试过了 cab_sample $ PUBorough <-ifelse(cab_sample $ PULocationID == c(3,18,20,31,32,46,47,51,58,59,60,78, 81,94,119,126,136,147,159,167,168,169, 174,182,183,184,185,199,200,208,212,213, 220,235,240,241,242,247,248,250,254,259), “布朗克斯”,“什么都没有”) 但我收到此错误消息
警告信息: 在cab_sample $ PULocationID == c(3,18,20,31,32,46,47,51,58,: 较长的物体长度不是较短的物体长度的倍数
有没有办法进行这种映射?
这是每个整数的映射
答案 0 :(得分:0)
每个label
对应于breaks
向量中两个连续值之间的间隔(例如,曼哈顿是102-150的间隔)。
因此,您可以使用findInterval
函数来检查PULocation
向量的每个整数在哪个间隔(即,在哪个区中)。然后,您可以使用findInterval
返回的间隔的索引来索引标签向量:
cab_data$borough <- labels[findInterval(cab_data$PULocation, breaks)]
使用dplyr
:
cab_data %>% mutate(borough = labels[findInterval(PULocation, breaks)])
使用函数参数left.open
(逻辑),您可以确定是否要将每个间隔的左中断包括在间隔中。