分解R数据帧

分解R数据帧,r,pandas,R,Pandas,我正在尝试使用R复制pandas(Python)explode方法 这是我掌握的数据: d = {"SN":[1,2],"Age":[21,15],"Name":["John;Luis","Dora"]} df = pd.DataFrame(d) df 在此基础上,我使用“;”分隔名称,并使用explode方法 df["Name"] = df["Name"].apply(lambda x: x.split(";")) df.explode("Name") 我得到的结果是: 现在我正试着用R

我正在尝试使用R复制pandas(Python)explode方法

这是我掌握的数据:

d = {"SN":[1,2],"Age":[21,15],"Name":["John;Luis","Dora"]}
df = pd.DataFrame(d)
df
在此基础上,我使用“;”分隔名称,并使用explode方法

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) )

df我们可以在
R
中使用
separate_行,而不是
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
返回
向量的
列表
,该列表可以是
非最新的
ed

df %>% 
   mutate(Name =  strsplit(Name,split=';', fixed=TRUE) ) %>%
   unnest(c(Name))

我们可以在
R
中使用
separate_行
,而不是
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
返回
向量的
列表
,该列表可以是
非最新的
ed

df %>% 
   mutate(Name =  strsplit(Name,split=';', fixed=TRUE) ) %>%
   unnest(c(Name))

参考资料,
df['Name'].str.split(';')
的缩写。apply(…)
参考资料,
df['Name'].str.split(';')
的缩写。apply(…)