【发布时间】:2021-11-20 19:10:40
【问题描述】:
我有一个数据框df 并想删除所有内容,包括“case_id”列中的第三个“-”之后的所有内容:
df
case_id unit
TCGA-3A-01-03-9441 27
TCGA-9C-01-04-9641 15
TCGA-1E-01-05-9471 6
这是所需的输出:
df
case_id unit
TCGA-3A-01 27
TCGA-9C-01 15
TCGA-1E-01 6
【问题讨论】:
-
否,因为这实际上是第二次出现,并且不在 df 的上下文中
-
嗯,是的,标题具有误导性。我的错。
-
这是同一个问题。您只需要在正则表达式模式中添加另一个
*-[^-],因为您想要使用 3 个连字符,而不是 2 个。要将函数应用于数据帧的每一行,您可以使用mutate或应用函数。重复这个问题,完整的命令如下:mutate(df, case_id = gsub("^([^-]*-[^-]*-[^-]*).*", "\\1", case_id)) -
如果是固定格式也可以使用
substr(df$case_id,1,10)