【发布时间】:2017-09-08 14:10:01
【问题描述】:
我有一个特定的问题,我正在尝试使用 R 在数据框中解决。以下是示例数据的列和几行:
我想编写一个函数来查找存在多个 FIPS 和多个 PROMO 的 ZIP。所以换句话说,ZIPS 与不同的 PROMO 交叉 FIPS。我不需要担心 COUNTY、FACTOR_X 和 FACTOR_Y,但我确实需要保留它们。
共有三种可能的促销级别(低、零、可变)。如果 ZIP 存在于多个 FIPS 中,并且 PROMO 在子集中不是不同的,则 STATUS 为 FAIL。但是,如果 ZIP 存在于多个 FIPS 中并且 PROMO 在子集中不同(相同),则 STATUS 为 PASS。
这里是一些示例输出
ZIP,ST_COUNTY,FIPS,FACTOR_X,FACTOR_Y,PROMO,STATUS
8520,NJ MERCER,34021,XXX,YYY,变量,失败
8520,NJ MIDDLESEX,34023,XXX,YYY,零,失败
8525,NJ XUNTERDON,34019,XXX,YYY,LOW,FAIL
8525,NJ MERCER,34021,XXX,YYY,变量,失败
8540,NJ MERCER,34021,XXX,YYY,变量,失败
8540,NJ MIDDLESEX,34023,XXX,YYY,零,失败
8540,NJ SOMERSET,34035,XXX,YYY,零,失败
8558,NJ XUNTERDON,34019,XXX,YYY,LOW,FAIL
8558,NJ MERCER,34021,XXX,YYY,变量,失败
8558,NJ SOMERSET,34035,XXX,YYY,零,失败
23117,VA GOOCXLAND,51075,XXX,YYY,零,失败
23117,VA LOUISA,51109,XXX,YYY,LOW,FAIL
23117,VA SPOTSYLVANIA,51177,XXX,YYY,LOW,FAIL
23117,VA SPOTSYLVANIA,51177,XXX,YYY,零,失败
78015,TX BEXAR,48029,XXX,YYY,零,失败
78015,TX BEXAR,48029,XXX,YYY,零,失败
78015,TX COMAL,48091,XXX,YYY,LOW,FAIL
78015,TX COMAL,48091,XXX,YYY,零,失败
78015,TX KENDALL,48259,XXX,YYY,LOW,FAIL
78015,TX KENDALL,48259,XXX,YYY,零,失败
1906,MA ESSEX,25009,XXX,YYY,LOW,PASS
1906,MA MIDDLESEX,25017,XXX,YYY,LOW,PASS
1906,马萨福克,25025,XXX,YYY,低,通过
16127,PA BUTLER,42019,XXX,YYY,零,通过
16127,PA 劳伦斯,42073,XXX,YYY,零,通过
16127,PA MERCER,42085,XXX,YYY,零,通过
16127,PA VENANGO,42121,XXX,YYY,零,通过
对于输出,我想将原始列和新的 STATUS 列拆分为两个文件。第一个文件是 ZIP_PASS,所有 STATUS == PASS,第二个文件是 ZIP_FAIL,所有 STATUS == FAIL
=======
【问题讨论】:
-
您应该明确提供与您的示例相对应的预期输出。详情:stackoverflow.com/questions/5963269/…
-
感谢弗兰克的建议,按要求进行了编辑。
-
如果您将期望的 STATUS 列添加到示例数据中,将会有所帮助。前四行是否为 FAIL(因为它们都是 PROMO=LOW),而后四行是否为 PASS?
标签: r