반응형
일치를 기반으로 열 선택 -dplyr :: select
많은 열이있는 데이터 프레임 ( "데이터")이 있습니다. 일부 열에는 많은 경우 ( "search_string")이 포함되어 있습니다.
dplyr::select()
패키지가 포함 된 열만 포함하는 하위 집합을 제공 하고 어떻게 해야합니까?
나는 시도했다 :
# columns as boolean vector
select(data, grepl("search_string",colnames(data)))
# columns as vector of column names names
select(data, colnames(data)[grepl("search_string",colnames(data))])
둘 다 작동하지 않습니다.
select()
를 들어 열 예 대신 숫자 벡터 를 허용 한다는 것을 알고 있습니다.
select(data,5,7,9:20)
하지만 ID
내 grepl()
표현식 에서 열의 숫자 벡터를 얻는 방법을 모르겠습니다 .
내 dplyr의 세계, 시도 :
select(iris,contains("Sepal"))
의 선택 섹션을 참조하십시오 ?select
수많은 도우미가 좋아 위해 starts_with
, ends_with
등
당신은 시도 할 수 있습니다 :
select(data, matches("search_string"))
그것은보다 더 일반적이다 contains
-당신은 (예를 정규식 사용할 수 있습니다 "one_string|or_the_other"
).
더 많은 예는 http://rpackages.ianhowson.com/cran/dplyr/man/select.html을 참조하십시오 .
사용할 필요는 select
단지 사용하지 않는 [
대신
data[,grepl("search_string", colnames(data))]
iris
데이터 세트를 보겠습니다.
>iris[,grepl("Sepal", colnames(iris))]
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
Piotr Migdals 응답을 기반으로하는 벡터에 대한 가능성을 가능하게하는 대체 솔루션을 제공하고 싶습니다.
myVectorOfStrings <- c("foo", "bar")
matchExpression <- paste(myVectorOfStrings, collapse = "|")
# [1] "foo|bar"
df %>% select(matches(matchExpression))
정규식 OR
연산자 ( |
) 사용
참고 URL : https://stackoverflow.com/questions/25923392/select-columns-based-on-string-match-dplyrselect
반응형
'ProgramingTip' 카테고리의 다른 글
Eclipse에서 XML 코드 형식 지정 (0) | 2020.11.03 |
---|---|
Ubuntu의 Eclipse 창에있는 매우 큰 탭 (0) | 2020.11.03 |
mockito 구입 및 인수 값 가져 오기 (0) | 2020.11.03 |
데이터베이스에서 h : selectOneMenu 옵션을 채우는 방법은 무엇입니까? (0) | 2020.11.03 |
Coffeescript의 조건부 연산자 (0) | 2020.11.03 |