【发布时间】:2021-03-25 17:05:54
【问题描述】:
让我们考虑以下向量:
x <- c("GDP_UK", "GDP_US", "GDP_UK_diff2_L2",
"INC","GDP_UK_L2", "GDP_US_level", "INC_UK", "INC_L1", "INC_diff1")
如您所见,有一个包含一些字符串的向量。
我要做的是找到其中有"_diff(number)", "_L(number), _level的人,并截断这部分字符串。
我想最终得到一个向量:
c("GDP_UK", "GDP_US", "GDP_UK", "INC", "GDUP_UK", "GDP_US", "INC_UK", "INC", "INC")
如您所见,所有_diff, _L, _level 都被截断以获得原始字符串。
我不知道该怎么做。我试过代码
x[grepl(paste(c("diff", "level", "_L"), collapse = "|"), x)]
只获取包含grepl 或level 或_L 的元素,但我不知道如何剪切它。用substring 尝试了一些东西,但不确定如何指定应该删除哪个字母。你知道怎么做吗?
** 编辑 **
我们可以使用以下代码:
x <- gsub(pattern = "_L", replacement = "", x)
x <- gsub(pattern = "_diff", replacement = "", x)
x <- gsub(pattern = "_level", replacement = "", x)
但是,我们将在字符串末尾得到剩余的数字:
"GDP_UK" "GDP_US" "GDP_UK22" "INC" "GDP_UK2" "GDP_US" "INC_UK" "INC2" "INC1"
【问题讨论】: