将值赋给R中的构造变量时出错

时间:2015-01-21 20:00:14

标签: r

我对R编程很新。有人可以说为什么这段代码会一直出错:paste0("emissions_for_",yr) <- sum(nei_tst[,var][select_obs], na.rm=TRUE)

  • (nei_tst是一个数据帧)
  • (var是在该数据框中分配了一列名称的变量)
  • select_obs是一个带有逻辑元素的变量(test的结果:yr ==“1999”)

我得到了foll。错误:Error in paste0("emissions_for_", yr) <- sum(nei_tst[, var][select_obs], : target of assignment expands to non-language object

2 个答案:

答案 0 :(得分:1)

如果对象的名称存储为字符串,则必须使用assign

assign(paste0("emissions_for_",yr), sum(nei_tst[,var][select_obs], na.rm=TRUE))

但是,动态创建多个变量以将不同的R值存储为多个值。您应该将所有相关值存储在单个对象中,例如列表或数据框。

答案 1 :(得分:0)

你可能不会更好地创建数据框,并按年份编制索引吗?

emissions <- data.frame(yr, sum(nei_tst[,var][select_obs], na.rm=TRUE))