微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法通过 CountryCode 将国家转换为大陆

如何解决无法通过 CountryCode 将国家转换为大陆

library(tidyverse)
library(readr)
library(countrycode)
library(stringr)

B07 <- read_csv("Downloads/BorderData/BorderApprehension2007.csv")
B08 <- read_csv("Downloads/BorderData/BorderApprehension2008.csv")

B07[is.na(B07)] = 0
B08[is.na(B08)] = 0
# and so on...
B07$CITIZENSHIP <- str_to_title(B07$CITIZENSHIP)

B07$continent <- countrycode(sourcevar = B07[,"CITIZENSHIP"],origin = "country.name",destination = "continent")

我想指定一个大陆而不是国家的名称,但我一直遇到这个错误...

国家代码错误(sourcevar = B07[,: sourcevar 必须是字符或数字向量。当用户传递tibble(例如,来自dplyr)时,通常会出现此错误而不是来自 data.frame 的列向量(即 my_tbl[,2] vs. my_df[,2] vs. my_tbl[2])

这是我的数据图像:

2

解决方法

正如错误所说:“sourcevar 必须是字符或数字向量。当用户传递 tibble(例如,来自 dplyr)而不是来自 data.frame(即 my_tbl[,2 ] vs. my_df[,2] vs. my_tbl[[2]])"

看看 B07[,"CITIZENSHIP"]B07[["CITIZENSHIP"]]B07$CITIZENSHIP 的结果之间的差异

library(tibble)
library(countrycode)

B07 <- tibble(CITIZENSHIP = c("United States","Canada","Mexico"))

countrycode(sourcevar = B07[,"CITIZENSHIP"],origin = "country.name",destination = "continent")
#> Error in countrycode(sourcevar = B07[,: sourcevar must be a character or numeric vector. This error often
#>              arises when users pass a tibble (e.g.,from dplyr) instead of a
#>              column vector from a data.frame (i.e.,my_tbl[,2] vs. my_df[,2]
#>                                               vs. my_tbl[[2]])

countrycode(sourcevar = B07[["CITIZENSHIP"]],destination = "continent")
#> [1] "Americas" "Americas" "Americas"

countrycode(sourcevar = B07$CITIZENSHIP,destination = "continent")
#> [1] "Americas" "Americas" "Americas"


B07[,"CITIZENSHIP"]
#> # A tibble: 3 x 1
#>   CITIZENSHIP  
#>   <chr>        
#> 1 United States
#> 2 Canada       
#> 3 Mexico

B07[["CITIZENSHIP"]]
#> [1] "United States" "Canada"        "Mexico"

B07$CITIZENSHIP
#> [1] "United States" "Canada"        "Mexico"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?