【发布时间】:2020-07-31 18:32:31
【问题描述】:
我有一个包含 17 列的 R 数据框。一列包含我将用于与其他数据框合并的唯一标识符。但是,此列中的某些行包含额外的数据,导致无法合并。这是我正在查看的不同类型数据的子集。
M2017013708-MN-M02199-180405
M201701492756-MN-M05144-180419
M2016019446_S3_L001
M2016019762
-MN 之后的所有数据都被认为是需要删除的额外数据。我的目标是在没有额外数据的情况下向数据框添加一个新列。它看起来像这样:
M2017013708
M201701492756
M2016019446_S3_L001
M2016019762
我尝试在 -MN 处拆分数据,这会创建一个列表,然后使用 ldply 将其制成数据框。但是,这会导致错误,因为拆分会导致多个长度的列表,因为并非所有行都有 -MN。
split_my_data <- strsplit(my_data$sample_name, '-MN')
df <- ldply(split_my_data)
我尝试使用带有 sqldf 的 case 和正则表达式。但是,我得到一个没有这样的函数 REGEXP 的错误。
任何帮助将不胜感激。
【问题讨论】:
-
也许你可以使用
gsub("-MN.*", "", my_data$sample_name)。 -
谢谢。效果很好。