【发布时间】:2014-09-29 14:42:01
【问题描述】:
我正在尝试做一些非常简单的事情:通过名称向量运行循环并在我的代码中使用这些名称。
geo = c(rep("AT",3),rep("BE",3))
time = c(rep(c("1990Q1","1990Q2","1990Q3"),2))
value = c(1:6)
Data <- data.frame(geo,time,value)
我的真实数据集有 14 个国家和 75 个时间段。我想找到一个函数,例如遍历国家,然后对它们进行子集化,这样我就有了单个数据集,例如:
data_AT <- subset(Data, (Data$geo=="AT"))
data_BE <- subset(Data, (Data$geo=="BE"))
但是有一个循环,最好有一个解决方案,我也可以应用于其他功能:-)
在我看来,这应该是这样的:
codes <- unique(Data$geo)
for (i in 1:length(codes))
{k <- codes[i]
data_(k) <- subset(Data, (Data$geo==k))}
但是子集不能像这样工作,其他函数也不能。我认为我的问题是我不知道如何解决“k”作为我的代码的一部分所采用的相应名称(例如“AT”)。如果可能的话,我将非常感谢一个关于如何通过包含文本的向量运行函数并在我的代码中使用该向量的每个元素的通用解决方案的答案。也许在应用功能的方向?虽然我也没有走得太远......
任何帮助将不胜感激!
【问题讨论】: