R 将字符串拆分为分隔符后的几个字符

R 将字符串拆分为分隔符后的几个字符,r,string,strsplit,R,String,Strsplit,我有一个需要拆分的名称和状态的大数据集。分割之后,我想用每个名称和状态创建新行。我的数据字符串在多行中,如下所示 "Peter Johnson, IN Chet Charles, TX Ed Walsh, AZ" "Ralph Hogan, TX, Michael Johnson, FL" attr name state 1 Peter Johnson IN 2 Chet Charles TX 3 Ed

我有一个需要拆分的名称和状态的大数据集。分割之后,我想用每个名称和状态创建新行。我的数据字符串在多行中,如下所示

"Peter Johnson, IN Chet Charles, TX Ed Walsh, AZ"
"Ralph Hogan, TX, Michael Johnson, FL"
attr      name            state
1         Peter Johnson   IN
2         Chet Charles    TX
3         Ed Walsh        AZ
4         Ralph Hogan     TX
5         Michael Johnson FL
我需要这样的数据

"Peter Johnson, IN Chet Charles, TX Ed Walsh, AZ"
"Ralph Hogan, TX, Michael Johnson, FL"
attr      name            state
1         Peter Johnson   IN
2         Chet Charles    TX
3         Ed Walsh        AZ
4         Ralph Hogan     TX
5         Michael Johnson FL

我不知道该怎么做,也许是在逗号后拆分了几个字符?任何帮助都将不胜感激。

如果是多行字符串,那么我们可以使用
gsub
创建一个分隔符,使用
strsplit
拆分字符串,使用输出
列表中的
拆分组件创建
数据.frame
,并将
rbind
组合在一起

d1 <- do.call(rbind, lapply(strsplit(gsub("([A-Z]{2})(\\s+|,)",
                    "\\1;", lines), "[,;]"), function(x) {
                        x1 <- trimws(x)
       data.frame(name = x1[c(TRUE, FALSE)],state = x1[c(FALSE, TRUE)]) }))     
cbind(attr = seq_len(nrow(d1)), d1)
#  attr            name state
#1    1   Peter Johnson    IN
#2    2    Chet Charles    TX
#3    3        Ed Walsh    AZ
#4    4     Ralph Hogan    TX
#5    5 Michael Johnson    FL
数据
行您是在一行还是多行中有一个字符串,如google所示:输入不清楚。它是引号中的单个字符串吗?谢谢,我的数据是多行的。