R:将因子值从一列应用到另一列

时间:2018-03-16 08:15:25

标签: r factors

我正在尝试处理R中的市政信息,似乎是因素(确切地说是factor())。是实现我的目标的最佳方式。我只是开始了解R,所以我想我的问题可能很简单。

我有以下示例数据框要分享(芬兰城市的一小部分):

municipality<-c("Espoo", "Oulu", "Tampere", "Joensuu", "Seinäjoki", 
"Kerava")
region<-c("Uusimaa","Pohjois-Pohjanmaa","Pirkanmaa","Pohjois-Karjala","Etelä-Pohjanmaa","Uusimaa")

myData<-cbind(municipality,region)
myData<-as.data.frame(myData)

默认情况下,R将我的字符列转换为因子,可以使用str(myData)进行测试。现在,我的初学者到新手级别R技能结束的部分:我似乎找不到从列region到列municipality应用因子的方法。

让我来证明一下。而不是原始结果

as.numeric(factor(myData$municipality))
  

[1] 1 4 6 2 5 3

我想得到这个,myData $ region中的因子应用于myData $ municipality。

as.numeric(factor(myData$municipality))
  

[1] 5 4 2 3 1 5

我欢迎任何张开双臂的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

为了更好地理解R中因子的使用,请查看here

如果您想添加因子级别,则必须在数据框中执行以下操作:

levels(myData$region)
[1] "Etelä-Pohjanmaa"   "Pirkanmaa"         "Pohjois-Karjala"   "Pohjois-Pohjanmaa" "Uusimaa"          
> levels(myData$municipality)
[1] "Espoo"     "Joensuu"   "Kerava"    "Oulu"      "Seinäjoki" "Tampere"  
> levels(myData$municipality)<-c(levels(myData$municipality),levels(myData$region))
> levels(myData$municipality)
 [1] "Espoo"             "Joensuu"           "Kerava"            "Oulu"              "Seinäjoki"        
 [6] "Tampere"           "Etelä-Pohjanmaa"   "Pirkanmaa"         "Pohjois-Karjala"   "Pohjois-Pohjanmaa"
[11] "Uusimaa"