【发布时间】:2019-09-18 01:35:09
【问题描述】:
我有一个数据框,其中有一列 (A) 包含字符串,每个单词都用逗号分隔(仍然是一个字符串)。
Df
A B etc.
"String1, String2, etc." ... etc.
我想要
将 A 列中的观察结果转换为列表。该列表将包含元素字符串 1、字符串 2 等。
我想删除所有不是 8 个字符长的字符串,以 4 个数字开头并以 4 个数字结尾(我已经有正则表达式)
我想把所有的字符串都变成因数
最终产品应该是这样的
Df
A B etc.
[String1, String2, etc] ... etc.
做一些测试,我发现 strsplit() 和 str_subset 的组合满足要求 1 和 2
var = "ABCD1234, ABCDEFGH"
var = str_split(var, ", ")
var = str_subset(var, "^[A-Za-z]{4}\\d{4}$")
# Var = list("ABCD1234")
但我无法将其应用于数据框列。到目前为止,这还没有奏效
df = df %>% mutate(
A = strsplit(A, split = ", ")
A = case_when(
TRUE ~ str_subset(A, "^[A-Za-z]{4}\\d{4}$")
)
)
有人可以帮忙吗? 谢谢
【问题讨论】: