r - 将因子变量转换为数字,然后从数字变回因子

标签 r

我有一个庞大的数据集(9.000.000 个条目),其中有两列是因子(409 个级别)。 这表示特定时期内机场之间的航类。 下面的数据集已经转换后。这意味着“ORIGIN”和“DEST”是数字形式。

  ORIGIN DEST weight        alpha
      1   24   1195 1.512274e-04
      1   78    844 2.557285e-03
    100    2   1615 3.176266e-17
    100    3   4196 9.111249e-09
    100    7   1221 6.471515e-10
    100   12    725 2.129114e-04

第二个数据集,包含所有 IATA 代码,以及纬度和经度。

           City IATA  Latitude Longitude
         Goroka  GKA -6.081690   145.392
         Madang  MAG -5.207080   145.789
    Mount Hagen  HGU -5.826790   144.296
         Nadzab  LAE -6.569803   146.726
   Port Moresby  POM -9.443380   147.220
          Wewak  WWK -3.583830   143.669

当前流程如下:

  1. 将 2 列转换为数字(因为我稍后需要它们,例如 那个)
  2. 将data.set转换为igraph
  3. 应用过滤算法(这就是列为数字的原因)
  4. 再次转换为数据集。

我的问题是我现在想将我拥有的数字转换回之前的因数,因为我需要第二个数据集的纬度和经度。

有什么想法吗?我已经尝试了几乎所有我能想到的方法。

最佳答案

我会在将其转换为数字之前存储您的因子水平,然后在恢复因子类时重新应用它们。
一个清楚我在说什么的例子:

data(iris)
# Store the levels
l<-levels(iris$Species)

# Convert to numeric
iris$Species <- as.numeric(iris$Species)
head(iris$Species)
class(iris$Species)

# Convert back to factor
iris$Species <- factor(iris$Species, labels = l)
head(iris$Species)
class(iris$Species)

关于r - 将因子变量转换为数字,然后从数字变回因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260287/

相关文章:

r - 如何在R中将数据类型 "Factor"转换为数据类型 "numeric"?

python - 在 Rstudio 中运行 python/bash 代码

r - dplyr - 多个汇总函数

r - 按纬度或经度将 map 拆分为两个单独的 map

r - 如何以编程方式设置 tibble 列类型

python - 从 OLE 结构化数据中提取数据

r - 使代码在单击 R 演示文稿时运行

r - OR 运算符作为功能开关

R:如何从汇总模型拟合中提取信息

r - 根据输出文档类型排除部分R markdown文档