【发布时间】:2017-11-29 15:57:48
【问题描述】:
我有一个数据集,其中每个观察值都有一个描述多个事物的 ID 值,例如 AE1 表示站点 A,类型 E,观察 1。我正在尝试为类型生成一个列,因此在上面的示例中我正在尝试在删除其他数据的同时过滤掉 E。
我已经研究过使用gsub,但是每个新的类型模式似乎都会覆盖以前的模式。似乎让我最接近的方法是使用gsubfn,如下所示:
library(gsubfn)
x <- c("AE1", "AE2", "AD1", "AD2", "BE1", "BE2", "BD1", "BD2")
y <- gsubfn(".", list("E" = "easy", "D" = "difficult"), x)
y
[1] "Aeasy1" "Aeasy2" "Adifficult1" "Adifficult2" "Beasy1" "Beasy2" "Bdifficult1" "Bdifficult2"
结果的问题是我仍然需要删除首字母和最后的数字。实际上,我有四种类型类别,而不仅仅是“E”和“D”
提前致谢。
【问题讨论】:
-
正如@d.b 在我删除的答案下评论的那样,您可以使用
substr(x, 2, 2)提取中间字符。然后由您决定如何转换它,例如使用factor或match或merge或... -
感谢你们俩。这两种方法都非常有效。