爆炸R数据框

时间:2020-03-13 17:34:53

标签: r pandas

我正在尝试使用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")

我得到的结果是:

enter image description here

现在我正在尝试使用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()等效的东西

1 个答案:

答案 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))
相关问题