【发布时间】:2015-06-05 19:05:21
【问题描述】:
我有一个记事本文档,列出了美国的所有邮政编码,我想查找一个特定的邮政编码(由用户指定),在该邮政编码上运行一些代码,打印出像 @987654321 这样的语句@我想做对于指定的邮政编码和出现在我的邮政编码档案中的接下来的 10 个连续的邮政编码。我的第一个问题是我不知道如何将包含所有这些数字的邮政编码文档转换为列表或数组,或者任何可以轻松运行 for 循环的东西。我对 R 非常陌生,所以请耐心等待。
Input = "20904"# User provides an input for this
ZipData<-read.csv(file.path(wd,"DataImport","zip_code_data.csv"),
colClasses=c("character","NULL","factor","NULL","NULL","factor",
"NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL",
"NULL","NULL"),
col.names=c("zip","","city","","","state","","","","","","","","",
"",""))
ZipData<- as.numeric(ZipData$zip)
edit(ZipData) # Opens up a notepad document listing the zipcodes starting with "c(544, 601, 602, 603, 604, 605, 606, 610, 611, 612, 613, 614....)
# Note: typeof(ZipData) prints out "double"
# Bunch of code that ends with:
a <- paste("The current temperature for", cityName, Input, "is", temperature, sep=" ")
print(a)
我想在 Input 和接下来的 10 个邮政编码上运行它。我无法制定一个循环遍历整个列表的 for 循环(我不知道 ZipData 是否可以归类为列表),找到用户指定的邮政编码,在其上运行我的代码块并冲洗并重复接下来的 10 个邮政编码。我的程序应该以列出所有温度的 10 个打印语句结束。有什么想法吗?
【问题讨论】:
-
信息不足。您提到“当前”值,但您的数据是否包含时间维度并且我们报告的是最新值?你询问接下来的 10 个邮政编码,但没有定义它。它是(排序的)数据中的下一个十个吗?它是来自用户的一系列输入吗?无论如何,我怀疑
match函数可能会有所帮助,例如match(Input,ZipData$zip)会很快为您提供正确的行。 -
@Frank 邮编都是按顺序排列的。因此,只需获取输入邮政编码之后出现在列表(?)中的接下来的 10 个元素。我的问题是首先尝试找到 Input 元素的索引。