我有一个庞大的数据集(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
当前流程如下:
- 将 2 列转换为数字(因为我稍后需要它们,例如 那个)
- 将data.set转换为igraph
- 应用过滤算法(这就是列为数字的原因)
- 再次转换为数据集。
我的问题是我现在想将我拥有的数字转换回之前的因数,因为我需要第二个数据集的纬度和经度。
有什么想法吗?我已经尝试了几乎所有我能想到的方法。
最佳答案
我会在将其转换为数字之前存储您的因子水平,然后在恢复因子类时重新应用它们。
一个清楚我在说什么的例子:
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/