我遇到了这个问题的困难。
df <- data.frame(number=1:3,name=c('a','b','c'),code=c("5464","5463,5678","45363,6346,6435"))
如果第3列只有一组数字,请不要重复。对于那些有&gt; 1组数字,重复该行并替换为后续数字。
原始输出
number name code
1 a "5464"
2 b "5463,5678"
3 c "45363,6346,6435"
期望的输出
number name code
1 a "5464"
2 b "5463"
2 b "5678"
3 c "45363"
3 c "6346"
3 c "6435"
我真的不知道从哪里开始。我尝试使用stringr::str_split_fixed
分隔字符串并计算出现次数。但在那之后,我很难根据这些事件重复行并用相应的值替换。
感谢任何帮助。
答案 0 :(得分:2)
我们可以使用separate_rows
tidyr
library(tidyr)
separate_rows(df, code)
cSplit
来自splitstackshape
library(splitstackshape)
cSplit(df, "code", ",", "long")