我在 Google 表格中有一些列,其标题如下:
Complete_Fall11 Complete_Spr12 Complete_Fall12 Complete_Spr13 Complete_Fall13 Complete_Spr14
在他们每个人的下方,我都有一个具有以下公式的单元格:
=IF($O2>=IF(REGEXMATCH(AN$1,".*Fall.*"),VALUE("20"®EXEXTRACT(AN$1,".*(\d\d)$")&"1100"),IF(REGEXMATCH(AN$1,".*Spr.*"),VALUE("20"®EXEXTRACT(AN$1,".*(\d\d)$")&"0400"),IF(REGEXMATCH(AN$1,".*Sum.*"),VALUE("20"®EXEXTRACT(AN$1,".*(\d\d)$")&"0500"),))),"1","NA")
这段代码基本上...
查看“Enrollment.End”列中的值是否大于或等于..
- 夏季为 20__0500,秋季为 20__1100,春季为 20__0400,
...并提取年份放入:
- 例如,标题为“Complete_Fall11”的列将在“注册”列中查找大于或等于 20111100 的值。
在 R 中,我的数据框名称是 NSCH,并且我有相同的列标题。所以这个问题有两个部分:
- 如何将 NSCH$Enrollment.End 列中的值重新编码为“Complete_Fall11”,如果 NSCH$Enrollment.End > 20111100 中的值大于或等于 20111100,则返回“1”,如果小于则返回“NA” .
- 编写代码来自动从变量名(又名列标题)是否包含“Fall”、“Spring”或“Summer”中提取月份是否可行,或者我最好只编写一个脚本来明确所有这些?*
示例数据框:
Enrollment.End:
20041221
20050509
20051222
期望的输出:
Complete_Fall06 Complete_Fall05
0 0
0 0
0 1
* R 的美妙之处在于我可以编写脚本。我在 Google Sheets 中有这个复杂的正则表达式的全部原因是它在自动化功能方面代替了脚本。