R dataframe,按字符串变量展开行

时间:2016-07-07 10:47:57

标签: r string dataframe expand

任何人都可以帮助解决这个小数据框架扩展问题吗? 提前谢谢!

# I have 
data.frame(rbind(c("1", "2", "3", "a/b/c"),
                 c("11", "0", "5", "c/d"),
                 c("3", "33", "0", "a"))
           )

#   X1 X2 X3    X4
# 1  1  2  3 a/b/c
# 2 11  0  5   c/d
# 3  3 33  0     a

# I want
data.frame(rbind(c("1", "2", "3", "a"),
                 c("1", "2", "3", "b"),
                 c("1", "2", "3", "c"),
                 c("11", "0", "5", "c"),
                 c("11", "0", "5", "d"),
                 c("3", "33", "0", "a"))
           )

#   X1 X2 X3 X4
# 1  1  2  3  a
# 2  1  2  3  b
# 3  1  2  3  c
# 4 11  0  5  c
# 5 11  0  5  d
# 6  3 33  0  a

1 个答案:

答案 0 :(得分:1)

我们可以使用data.table

 library(data.table)
 setDT(df1)[, strsplit(as.character(X4), "/"), by = .(X1, X2, X3)]