我的数据如下:
我想分割代码字符串,因此它最终只在代码列中有一个字符,每个字符串都有新行,但它周围的列是相同的。对于第一个就像这样。
这可能吗?谢谢!
答案 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)