如何在 R 中将分组变量分为两个具有字符串值的变量?

gok*_*gok 3 string r subset

我有一个数据,看起来像这样:

Exp1 <- structure(list(Duration = c(159L, 170L, 140L, 95L, 216L, 142L
), Group = c("Personal Failure", "Personal Failure", "Nonpersonal Failure", 
             "Nonpersonal Success", "Personal Success", "Nonpersonal Failure"
)), row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

我想将“组”列分为两个不同的列,以便每个值的第一个单词(个人/非个人)组成一个名为“类型”的列,第二个单词(失败/成功)组成另一个名为“成就”的列”。

我该怎么做?

这是我想要获得的示例输出:

Exp1 <- structure(list(Duration = c(159L, 170L, 140L, 95L, 216L, 142L
), type = c("Personal ", "Personal ", "Nonpersonal ", "Nonpersonal ", 
            "Personal ", "Nonpersonal "), achivement = c("Failure", "Failure", 
                                                         "Failure", "Success", "Success", "Failure")), row.names = c(NA, 
                                                                                                                     6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

hel*_*end 5

基础R溶液:

split_vec_name <- "Group"
cbind(
   Exp1[,names(Exp1) != split_vec_name, drop = FALSE],
   strcapture(
      pattern = "(\\w+)\\s+(\\w+)",
      x = Exp1[,split_vec_name],
      proto = list(type = character(), achievement = character())
   )
)
Run Code Online (Sandbox Code Playgroud)