我有包含emailaddress和states的数据,我想创建一个标记每个州所在区域的列。在SQL中,我是通过case语句完成的,但在R中,最好的方法是什么?我在美国人口普查中定义了地区(截至2017年)。
我的起始数据如下:
emailaddress states
xyz@gmail.com NV
abc@hotmail.com CA
bba@gmai.com UT
so121@gamil.com AZ
ad@yahoo.com IA
我希望结果是:
emails states regions
xyz@gmail.com NV West
abc@hotmail.com CA West
bba@gmai.com UT West
so121@gamil.com AZ West
ad@yahoo.com IA Midwest
然后我想将此输出写入csv文件。
感谢任何帮助或起点。
答案 0 :(得分:2)
像往常一样困难的部分是先收集数据,但我碰巧是从US Census归档的。因此,在运行下面的“州/地区数据”部分后,运行以下代码行:
proMISS
输出:
promissTwo
州/地区数据:
df <- data.frame(emails=c("xyz@gmail.com","abc@hotmail.com","bba@gmai.com",
"so121@gamil.com","ad@yahoo.com"),
states=c("NV","CA","UT","AZ","IA"))
df$regions <- sapply(df$states,
function(x) names(region.list)[grep(x,region.list)])
#Then write to desktop, for example, with:
write.csv(df,"~/Desktop/nameHere.csv",row.names=FALSE)