基于逗号将data.frame行拆分为多行

时间:2015-04-20 21:12:39

标签: r string

我试图根据字符序列","在data.frame中分割一行。这是一个例子:

mydat <- data.frame(v1 = c("name, name2", "name3", "name4, name5"),
                v2 = c("1, 2", "3", "4, 5"), 
                v3 = c(1, 2, 3))

我最终想要的是data.frame,如此:

 v1   v2   v3
name  1    1
name2  2   1
name3  3   2
name4  4   2
name5  5   3

有什么建议吗?

3 个答案:

答案 0 :(得分:6)

这应该有用。

install.packages("splitstackshape")
library(splitstackshape)
out <- concat.split.multiple(mydat, c("v1","v2"), seps=",", "long")


out
     v1 v2 v3
1:  name  1  1
2: name2  2  1
3: name3  3  2
4: name4  4  3
5: name5  5  3

答案 1 :(得分:6)

以下是使用data.table包及其新tstrsplit函数

的另一种方式
library(data.table) # v >= 1.9.5
setDT(mydat)[, lapply(.SD, tstrsplit, ", "), by = v3]
#    v3    v1 v2
# 1:  1  name  1
# 2:  1 name2  2
# 3:  2 name3  3
# 4:  3 name4  4
# 5:  3 name5  5

答案 2 :(得分:1)

对于后人,倾向于from selenium import webdriver import time driver = webdriver.Ie() driver.get('http://www.google.com/xhtml') driver.get("http://www.virgilio.it/")#example time.sleep(2) print(driver.current_url) 个软件包的用户可以使用tidyverse的{​​{1}}函数以及来自tidyr的{​​{1}}(以维护订单) (列)完成这项工作:

separate_rows