【发布时间】:2018-03-16 08:15:25
【问题描述】:
我正在尝试在 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
我张开双臂欢迎任何帮助。谢谢。
【问题讨论】:
-
您要根据
as.numeric(myData$region)重新排序myData$municipality吗?如果是这样,您可以使用myData$municipality[myData$region]。正如@jogo 指出的那样,您可以/应该使用with()而不是attach(),例如with(myData, municipality[region]). -
感谢 cmets jogo 和 markus。首先,我想谈谈我对 attach() 的使用。认为它消失了。我从来没有真正使用过它,但现在出于某种原因使用了它。在这个问题中,我想在
municipality因子级别中获得region因子级别,替换原来的。例如,levels(myData$municipality)<-c(levels(myData$region))不起作用。请原谅我,这里的部分问题似乎是我对 R 白话或任何编程语言白话都不熟悉。