我如何在R中为这些过程使用for循环

时间:2019-12-07 17:05:53

标签: r

我有一个包含43个不同国家的数据框。 总结一下我的数据框,像这样的行名:(AUS1,AUS2,AUS3,... BRA1,BRA2,... GER1,GER2 ... GER56),还有一个类似Country的变量,其中包含国家/地区代码。

我需要找到它们的出口值。我可以分别找到,但是因为我有14年不同的时间,所以要花费很多时间。因此,我想使用for循环。但是,我找不到用于以下过程的for循环的任何方法。

这是我的代码,用于查找单个国家/地区的出口。

navigator.permissions.query({name: 'camera'}).then(function (permissionStatus) {
  if (permissionStatus.state === 'prompt') {
    // show your own message box here
    // don't forget to pause execution until user reads it, before getUserMedia() call
  }
})

2 个答案:

答案 0 :(得分:0)

尝试为此结果集创建单独命名的对象是R中疯狂的路径。相反,创建一个具有更通用名称的列表,然后将结果放入列表内的“叶子”(单个元素)中:

 export <- list()
 for (i in wiot$Country) { 
               export[i] <- sum(wiot[i]$TOT) - sum(select(wiot, starts_with(i)))
       #or maybe: export[i] <- sum(wiot[i]$TOT) - sum(wiot[ grepl(i,names(wiot)) ] )
                          }

这是一个猜测,因为我无法弄清楚在data.frame对象中如何引用行和列。如果您为名为wiot的数据对象提供了一个不太模糊的描述,则调试起来会容易得多。使用str(wiot)的输出或显示dput(head(wiot))的输出

答案 1 :(得分:0)

考虑基数R的by,以建立 export 计算的命名列表:

export_list <- by(wiot, wiot$country, function(sub)
   sum(sub$TOT) - sum(select(sub, starts_with(sub$country[1])))
)

export_list$AUT
export_list$BEL
export_list$GER
...