我有一个包含以下列名的 Dataframe :
NewYork_10
NewYork_20
NewYork3_10
NewYork3_20
NewYork4_10
NewYork4_20
HongKong_10
HongKong_20
SanFrancisco_10
SanFrancisco_20
我有一个向量:
list <- c("NewYork", "SanFrancisco")
我需要一个创建新 Dataframe 的脚本,选择下划线前具有完全相同字符串的列。在上面给出的示例中,您将获得具有以下列的新 Dataframe 。NewYork_10 NewYork_20 SanFrancisco_10 SanFrancisco_20
我对grep做了几次尝试:dplyr::select(matches(list_cities))
dplyr::select(matches(paste0(list_cities), "_"))
甚至用锚来表示向量,我不确定这是否可行。dplyr::select(matches(paste0("^",list_cities, "_.*")))
但在每种情况下,它都捕获了向量中,以给定子字符串开头的所有值。
2条答案
按热度按时间disho6za1#
我们也可以使用
matches
kcwpcxri2#
您可以尝试:
或使用
dplyr::select
其中
^
是字符串的开头,(NewYork|SanFrancisco)
匹配NewYork
或SanFrancisco
后跟_
。或者使用
startsWith
:数据(摘自@benson23)