复制信息时拆分字符串

时间:2014-11-04 21:43:11

标签: r string split delimiter

我的数据如下:

enter image description here

我想分割代码字符串,因此它最终只在代码列中有一个字符,每个字符串都有新行,但它周围的列是相同的。对于第一个就像这样。

enter image description here

这可能吗?谢谢!

2 个答案:

答案 0 :(得分:1)

我会推荐我的" splitstackshape"中的cSplit函数。包:

library(splitstackshape)
cSplit(df, "code", sep = "", direction = "long", stripWhite = FALSE)
#     event_id code staff_id
#  1:   124456    .     2222
#  2:   124456    C     2222
#  3:   124456    C     2222
#  4:   124456    D     2222
#  5:   124456    S     2222
#  6:   124456    S     2222
#  7:   123849    .     2222
#  8:   123849    S     2222
#  9:   123849    S     2222
# 10:   123849    B     2222
# 11:   123849    B     2222
# 12:   123849    S     2222
# 13:   234829    .     2343
# 14:   234829    S     2343
# 15:   234829    S     2343
# 16:   234829    B     2343
# 17:   234829    B     2343

这假设我们从以下数据开始:

df <- data.frame(event_id = c(124456, 123849, 234829),
                 code = c(".CCDSS", ".SSBBS", ".SSBB"),
                 staff_id = c(2222, 2222, 2343))

答案 1 :(得分:0)

可以尝试:

(df是您的数据集)

event_id <- c(124456,123849)
code <- c(".CCDSS",".SSBBS")
staff_id <- c(2222,2222)
df <- data.frame(event_id,code,staff_id)

A<-apply(df,1,function(x)data.frame(event_id=x[[1]],code=unlist(strsplit(x[[2]],"")),staff_id=x[[3]]))
do.call(rbind,A)