我拥有的数据集状态,我希望将一个新的变量或列称为Region, 太平洋 - 俄勒冈州,加利福尼亚州,华盛顿 岩石山脉 - 内华达州,蒙大拿州爱达荷州,等等
我很困惑从哪里开始。有什么想法吗?
答案 0 :(得分:3)
执行此操作的经典方法是使用merge()
,或者(因为您添加了tidyr
标记,因此您处于“Hadleyverse”)dplyr::full_join()
。假设您有一个包含状态和其他数据的数据框:
d1 <- data.frame(state=c("Alaska","Massachusetts",
"Massachusetts","Florida"),
other_stuff=1:4)
和另一个包含状态及其区域之间匹配的数据框:
d2 <- data.frame(state=c("Alaska","Massachusetts","Florida"),
region=c("Western","Northeast","Southeast"))
然后
library("dplyr")
d1 %>% full_join(d2,by="state")
应该做你想做的事。
但是由你决定从哪里获得d2
或等效信息。
答案 1 :(得分:1)
由于您没有提供数据,我认为您的数据看起来像这样:
df <- data.frame(state = c("Alabama", "Alaska", "Arizona", "Arkansas", "California", "Oregon", "Washington"))
我想你的data.frame中有一个列(在这种情况下称为df $ state),它包含有关状态的信息。您可以创建一个名为region的新变量,如下所示:
df$region[df$state == "California" | df$state == "Oregon" ] <- "Pacific"
df