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所示:输入不清楚。它是引号中的单个字符串吗?谢谢,我的数据是多行的。