在R语言中用A前缀连续整数简化数据框Longitude列值
解决方案
你可以利用R里的factor类型实现需求,不管经度值的出现频率,每个唯一经度都会被分配唯一的"A+数字"标识:
# 给数据框df新增一列new,生成连续的A开头编号 df$new <- paste0("A", as.integer(factor(df$Longitude)))
原理说明
factor(df$Longitude)会自动把所有唯一的经度值转为因子水平,默认按首次出现的顺序分配水平(完全避开了排序问题,符合你说的不能用简单排序的场景)as.integer()将每个因子水平转换成对应的整数编号(1、2、3...)paste0()把字母"A"和整数拼接,得到你需要的A1、A2格式的标识
如果需要自定义唯一值的编号顺序,比如按经度值大小排序,只需要给factor指定levels参数即可:
# 按经度值从小到大分配编号 df$new_sorted <- paste0("A", as.integer(factor(df$Longitude, levels = sort(unique(df$Longitude)))))
内容的提问来源于stack exchange,提问作者Beardedant
相关产品推荐
相关产品推荐

