我正在尝试使用R复制pandas(Python)爆炸方法。
这是我拥有的数据:
d = {"SN":[1,2],"Age":[21,15],"Name":["John;Luis","Dora"]}
df = pd.DataFrame(d)
df
从那里开始,我将名称分割成“;”并使用爆炸方法
df["Name"] = df["Name"].apply(lambda x: x.split(";"))
df.explode("Name")
我得到的结果是:
现在我正在尝试使用R做同样的事情。 我有这部分代码,这就是第一步
df <- data.frame("SN" = 1:2, "Age" = c(21,15), "Name" = c("John;Luis","Dora"))
df$Name <- as.character(df$Name)
df = df %>%
mutate(Name = strsplit(Name,split=';', fixed=TRUE) )
但是我找不到与.explode()
等效的东西
答案 0 :(得分:2)
我们可以在separate_rows
中使用R
而不是strsplit
,然后展开行
library(tidyr)
library(dplyr)
df %>%
separate_rows(Name)
# SN Age Name
#1 1 21 John
#2 1 21 Luis
#3 2 15 Dora
使用OP方法,strsplit
返回list
中的vector
,可以unnest
编辑
df %>%
mutate(Name = strsplit(Name,split=';', fixed=TRUE) ) %>%
unnest(c(Name))