【发布时间】:2014-01-08 14:08:58
【问题描述】:
我在R 中有一个字符向量,每个元素都包含一个字符串 - 让我们使用这个示例:
my.files <- c("AWCallibration#NoneBino-3", "AWExperiment1#NoneBino-1", "AWExperiment2#NonemonL-2"
)
我想从这些字符串中提取某些信息 -
- 首先,两个大写字母字符(在这种情况下,总是
"AW") - 试验是用于校准 (
"Callibration") 还是数据收集 - 如果是后者,则使用哪种条件("Experiment1"或"Experiment2") - 在此特定试验中使用了哪个子条件(
"Bino"或"monL") - 子条件的重复(
"1"或"2")
我第一次尝试使用strsplit,但这似乎只适用于带有常规分隔符的情况,例如"_"。 substring 似乎更适合我的需求,但实际上并没有起作用,因为在常规位置不会发生拆分("Experiment1" 是十一个元素长,"Callibration" 是十二个元素)。
我怀疑使用正则表达式可能是这里的答案,但我不知道如何解释拆分之间的不同长度。
【问题讨论】:
-
使用
substring,它是矢量化的,可以同时作用于所有元素。是的,您将需要多个条件和多个子字符串调用 -
substr仍然存在与substring相同的问题 - 如何解决每次未在同一元素上发生的拆分? -
您不必在一个条件和一行中做出所有决定,对吗? (提示:如果您想将条件折叠成一行,请在 else 条件中使用嵌套的
ifelse:) -
你是对的!我只是有一个错误,就是试图让一切尽可能紧凑(通常对我不利)。