首页 > 解决方案 > 如何将函数参数从 for/if 循环传递到代码体?

问题描述

我有一个国家和连接数据的数据框,但这些国家仅按整数代码列出。我想为国家名称创建一个新变量,并有一个函数将给定行的国家名称更改为适当的国家名称。

我可以使用以下代码轻松地为任何给定的国家/地区执行此操作:

for (i in 1:nrow(mena)){
  if (mena$ccode[i] == 600){
    mena$cname[i] <- "Morocco"}

但是,当我尝试创建一个以国家名称和国家代码作为参数的函数时,我的代码不会导致错误消息,但根本不会影响我的数据框。这是我写的函数:

assignGWName <- function(countryname, countrycode){
  for (i in 1:nrow(mena)){
    if (mena$ccode[i] == countrycode){
      mena$cname[i] <- countryname}
  }
}

如果我打电话

assignGWName("Morocco", 600)

我没有效果。为什么?

标签: r

解决方案


推荐阅读