我有一个带有一个字段的数据框,该字段是一个字符串,其中包含用逗号分隔的名称列表。我想扩展数据框架,以便每个原始行都有多行,行数是列表中名称的数。所以,我想改变一些
df <- data.frame(f1=c("a","b"), f2=c("b","e"), f3=c("a,b,c", "a,d"))
df
f1 f2 f3
a b a,b,c
d e a,d
进入
df
f1 f2 f3
a b a
a b b
a b c
d e a
d e d
我怀疑dplyr和/或reshape2是完成这项工作的工具,但是我不确定在这种情况下如何应用它们。
这是使用以下方法apply
:
as.data.frame(do.call(rbind, apply(df, 1, function(x) {
do.call(expand.grid, strsplit(x, ","))
})))
# f1 f2 f3
# 1 a b a
# 2 a b b
# 3 a b c
# 4 b e a
# 5 b e d
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句