我有数百个数据框,每个数据框包含员工信息,例如年龄,性别,职位,DOB等。问题是,大多数文件具有不同的列标题和数据结构。
我正在尝试从每个文件中捕获尽可能多的可行信息,即不是全部,而是可以通过简单的列匹配或算法有效地捕获其中的70-80%。
此数据将合并到一个包含常用列(例如上面列出的列)的“主普查表”中,然后将其上载到SQL Server。
实现此目的的第一个想法是创建一个“主列”键,该键将一个列的多个变体映射到标准化的标题。例如,当包含输入文件的匹配列标题(“性别”,“性别”,“男/女”,“男/女”)时,将匹配“性别”列。
任何匹配的列都将添加到主表中,而在未找到匹配项的列中保留空白单元格。
实现此目标的最佳方法是什么?每个循环标题中的“ if”语句是否在循环中检查列转换键中的匹配项?是否有更合适的功能/软件包?
我正在努力将自己的头放在根据条件逻辑将整个列拉入新数据框中,而无需编写复杂的“ if,then”循环,同时还要确保数据结构被强制并且每个列都被标准化,即“ Sex”列只包含“男”和“女”,而不是“ M”,“ F”,“男孩”,“女孩”等的组合。
感谢任何帮助/投入/讨论。
如果有人想更好地了解我的意思,我可以花一些时间来添加示例数据。
R版本3.4.4
答案 0 :(得分:0)
没有数据很难回答这个问题,但是我过去不得不做类似的事情,这就是我的做法。
这应该产生所有帧的标题和数据类型的列表。
此时您可以:
rep(NA, each = nrow(df))
或其他值)。rbind()
结果如果您有更多详细信息,那么我可以更详细地回答,但是您最需要的是策略,然后编写算法(实际上可能有很多{{1} }调用)以应用它。