我str_detect能夠找出列名是否包含數字,但它回傳邏輯 TRUE 或 FALSE。我如何使用它來選擇列?
代碼
library(tibble)
library(dplyr)
data <- tribble(
~a1, ~b, ~c91, ~d,
1, 2, 3, 4
)
data %>%
select(str_detect("[[:digit:]]", names(.)))
代碼回傳此錯誤
Error: Must subset columns with a valid subscript vector.
x Subscript has the wrong type `logical`.
i It must be numeric or character.
uj5u.com熱心網友回復:
dplyr 帶有一組輔助函式來匹配 select 中的列名。
你要:
data %>%
select(matches("[[:digit:]]"))
這里的問題是str_detect()回傳一個布爾向量,但select()需要列名。
uj5u.com熱心網友回復:
這是一個基本的 R 替代方案 -
data[grepl('[[:digit:]]', names(data))]
# a1 c91
# <dbl> <dbl>
#1 1 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/418379.html
標籤:
上一篇:基于R中具有多個條件的組過濾行
下一篇:R中的復選框輸入服務器問題
