r - 如何在 R 中使用 tidyr::separate 拆分字符串并保留分隔符字符串的值?

标签 r tidyr stringr

我有一个数据集:

crimes<-data.frame(x=c("Smith", "Jones"), charges=c("murder, first degree-G, manslaughter-NG", "assault-NG, larceny, second degree-G"))

我正在使用 tidyr:separate 拆分与“G”匹配的费用列,
crimes<-separate(crimes, charges, into=c("v1","v2"), sep="G,")

这会拆分我的列,但会删除分隔符“G,”。我想在结果列拆分中保留“G”。

我想要的输出是:
 x         v1                       v2
 Smith     murder, first degree-G   manslaughter-NG
 Jones     assault-NG               larceny, second degree-G

欢迎任何建议。

最佳答案

更新

这就是你所要求的。请记住,您的数据并不整洁(V1 和 V2 的每一列内都有多个变量)

A<-separate(crimes,charges,into=c("V1","V2"),sep = "(?<=G,)")
A
      x                      V1                        V2
1 Smith murder, first degree-G,           manslaughter-NG
2 Jones             assault-NG,  larceny, second degree-G

保留“G”或“NG”的更简单方法是使用 sep=", "正如阿利斯泰尔所说。
A<-separate(crimes, charges, into=c("v1","v2"), sep = ', ')

这给
      x         v1              v2
1 Smith   murder-G manslaughter-NG
2 Jones assault-NG       larceny-G

如果您想继续分离 data.frame(使用 -)
separate(A, v1, into = c("v3","v4"), sep = "-")

那给
      x      v3 v4              v2
1 Smith  murder  G manslaughter-NG
2 Jones assault NG       larceny-G

您需要为 v2 列再次执行此操作。我不知道您是否想继续分开,请发布您的预期输出以使我的回答更具体。

关于r - 如何在 R 中使用 tidyr::separate 拆分字符串并保留分隔符字符串的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586673/

相关文章:

r - 如何用 r 中的序列替换替换可变数量的占位符?

r - 如何将两个 tibbles 或 dataframe 中的值粘贴到 R 中的组合显示表中?

r - 将代码块放在 if 语句中会更改分配行为 R

r - 向前填充所有变量的所有缺失值

r - 使用 dplyr [r] 标准化变量

r - 在 dplyr 函数中创建和访问动态列名称

r - 在r中将街道地址分为街道编号和街道名称

r - 在 R 中展平嵌套 JSON

R:计算多个(!)列中字符串的多次出现

r - 每 n 个字符拆分字符串新列