我的數據集中有幾列以Q(m,n,s)_開頭。我如何從數據集中提取這些列。我試圖使用下面的代碼,但它沒有奏效。我想知道如何解決這個問題。修改了grep函數的代碼
col <-grep("Q(m,n,s)_",names(Data))
我的數據集中有幾列以Q(m,n,s)_開頭。我如何從數據集中提取這些列。我試圖使用下面的代碼,但它沒有奏效。我想知道如何解決這個問題。修改了grep函數的代碼
col <-grep("Q(m,n,s)_",names(Data))
你要逃避這些括號,括號已經在正則表達式的特殊含義,它們被稱爲捕捉組,從而把他們的字面意思我們要逃避他們,這是更好地把列的你們的名字,同時發佈讓一切都可以得到驗證:
grep("Q\\(m,n,s\\)_",names(Data))
如果你想有一個合乎邏輯的回報,使用grepl
:
grepl("Q\\(m,n,s\\)_",names(Data))
玩具例子:
x1 <- c("Q(m,n,s)_","a,b,c")
y1 <- grepl("Q\\(m,n,s\\)_",x1)
> y1
[1] TRUE FALSE
比用正則表達式模式摔跤使用fixed = TRUE
參數要容易得多:
col <- grep("Q(m,n,s)_", names(Data), fixed = TRUE)
如果你想在名稱,而不是添加value = TRUE
參數:
col <- grep("Q(m,n,s)_", names(Data), fixed = TRUE, value = TRUE)
非常感謝您的出色解決方案。 – david