如何根据R中的多个条件将变量解析为多列?

问题描述

我是 R 的新手,所以请耐心等待。我正在查看监禁数据,并且有一个变量 conviction,它是一个看起来像这样的杂乱字符串:

[1] "Ct. 1: Conspiracy to distribute"                                                                         
[2] "Aggravated Assault"                                                                                      
[3] "Ct. 1: Possession of prohibited object; Ct. 2: criminal forfeiture"                                      
[4] "Ct. 1-6: Human Trafficking; Cts. 7,8 Unlawful contact; Ct. 11: Involuntary Servitude; Ct. 36: Smuggling"

理想情况下,我想做两件事。首先,我想将 Ct. 解析为多列。对于前三行,数据如下所示:

     convictions                              conviction_1                      conviction_2                    
[1,] "Ct. 1: Conspiracy to distribute"        "Conspiracy to distribute"        NA                   
[2,] "Aggravated Assault"                     "Aggravated Assault"              NA                   
[3,] "Ct. 1: Possession of prohibited object" "Possession of prohibited object" "criminal forfeiture"

但是当我到达第三行时事情变得很麻烦,因为我想将字符串的第一部分 (Ct. 1-6: Human Trafficking) 解析为 6 列,然后将 Ct. 7,8: Unlawful contact 解析为另外 2 列。

第二部分是然后我想生成一个变量 convictions_total,它会在 conviction 之后的 Ct: 字符串中找到最高数字。对于我在这里包含的三个示例条目,convictions_total 看起来像:

[1]  1  2 36

这是我用来解析一个更直接的字符串变量的代码,但我不确定如何为这个变量调整它:

cols <- data.frame(str_split_fixed(data$convictions`,",Inf))
colnames(cols) <- paste0("conviction_",rep(1:length(cols)))
data <- cbind(data,cols)

先谢谢你!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)