r - R:从文本数据中排除各种垃圾
问题描述
我有一个包含各种垃圾的庞大文本数据集。下面的虚拟数据代表了数据集中垃圾的多样性。虽然outcome
列包含要清理的数据,但text_group
列显示垃圾的类型。这clean_outcome
是想要的结果。
foo_df <- tibble(outcome = c(
"Dwayne Mourinho : PPP : 22/05/16 : WCY011068",
"Sarry Bedford : FamSuppr : 14/06/16 : ZAK0",
"Awanui Moutinho : FamChild : 14/02/14 : BAS007083",
"Allyson Bosere : Budgetng : 03/08/16 : XAP005407",
"Anneke Peter : PAFT : 17/12/12 : MAI005518",
"Budget for the Math",
"Parenting programs",
"WINZ",
"IRD",
"Baby First Aid Cert. - 00BC61FB",
"Stop taking drugs - 81868C49",
"Pamela Riri - LBM2925 - Breast Feeding",
"Afunbiowo Ige - GMY3480 - AOD",
"Paora Fowler - Literacy & Numeracy",
"Yang Wilson - Literacy & Numeracy",
"Samuel Bell - Literacy & Numeracy",
"COVID-19 Outcome - Johnson Buhari",
"Positive Parenting Programme (Triple P)-Kanu Babayaro",
"Goals : Wx000371",
"Mentoring : WO000372",
NA
),
text_group = c(
1,1,1,1,1,
2,2,2,2,
3,3,
4,4,
5,5,5,
6,6,
7,7,
8
),
clean_outcome = c(
"PPP",
"FamSuppr",
"FamChild",
"Budgetng",
"PAFT",
"Budget for the Math",
"Parenting programs",
"WINZ",
"IRD",
"Baby First Aid Cert.",
"Stop taking drugs",
"Breast Feeding",
"AOD",
"Literacy & Numeracy",
"Literacy & Numeracy",
"Literacy & Numeracy",
"COVID-19 Outcome",
"Positive Parenting Programme (Triple P)",
"Goals",
"Mentoring",
NA)
)
我发现stackoverflowpage1和stackoverflowpage2的贡献部分有用,但仍不能完全清理数据(即outcome
)。
经过深入研究outcome
,我观察到以下叙述:
如果文本有日期,分隔符是冒号,数据在第一个和第二个分隔符之间
如果文本有一个破折号分隔符,没有名称,则数据在分隔符之前
在大多数情况下,如果文本有一个破折号分隔符,带有名称,则数据在分隔符之后
如果文本有两个破折号分隔符,则数据在第二个分隔符之后
如果文本有一个冒号分隔符,则数据在分隔符之后
这个功能:
colon_function <- function(x){
if(str_count(x, ":") == 3) {
trimws(str_split(x, ":")[[1]][[2]])
}else x}
如果文本有日期,则清除数据,并且分隔符是冒号并且数据在第一个和第二个分隔符之间(即foo_df$text_group == 1
)。
我需要帮助才能在 R 代码中包含其他条件,以便我可以得到诸如 in 之类的结果clean_outcome
。
谢谢。
解决方案
推荐阅读
- laravel - redisSearch 有什么推荐的 PHP 包吗?
- java - Intellij idea Java 如何使用native lib | java.library.path 中的错误
- node.js - 节点:将 Protobuf 消息发送到 Kafka 错误
- apache-spark - 在 pyspark 中处理复杂对象(数组)
- postgresql - 如何编写循环条件以获取 postgresql 中的子子文件夹名称
- c# - 给定 Array.Cast
(),如何通过反射确定 T? - google-apps-script - 下拉框编辑触发 setValue
- javascript - Reactjs - 错误:对象作为 React 子项无效(找到:带有键 {type,data} 的对象)
- javascript - 如何将数组的浅拷贝传递给函数
- php - 如何获取当前网页名称并通过一些修改回显