반응형
열 이름이 주어지면 R의 열 번호를 가져옵니다.
중복 가능성 :
데이터 프레임의 레이블에서 열 인덱스 가져 오기
이름이 주어진 열의 열 번호를 가져와야합니다.
다음 데이터 프레임이 있다고 가정합니다.
df <- data.frame(a=rnorm(100),b=rnorm(100),c=rnorm(100))
다음과 같이 작동하는 기능이 필요합니다.
getColumnNumber(df,"b")
그리고 그것은 돌아올 것입니다
[1] 2
그런 기능이 있습니까?
감사!
which( colnames(df)=="b" )
해야합니다.
빠르고 깔끔한 방법은 다음과 같습니다.
> match("b",names(df))
[1] 2
즉 그 벡터 스캔 방지 ==
및 which
수행하십시오. 열이 많고이 작업을 많이한다면 fastmatch 패키지를 좋아할 것 입니다.
> require(fastmatch)
> fmatch("b",names(df))
[1] 2
fmatch
는보다 빠르지 match
만 후속 호출에서는 더 빠를뿐만 아니라 즉각적입니다.
정확하지 않은 일치 작업을 더 잘 일반화하는 또 다른 방법은 다음을 사용하는 것입니다 grep
.
grep("^b$", colnames(df) )
"b"로 시작하는 모든 열 이름의 번호를 제거하려면 다음과 같이 작성합니다.
df[ , - grep("^b", colnames(df) )]
이는 문자형 벡터에 음의 인덱싱을 사용할 수 없다는 문제를 깔끔하게 해결합니다.
.. 특히 여러 열 인덱스를 가져와야하는 경우 아래 접근 방식이 적용됩니다.
> df <- data.frame(a=rnorm(100),b=rnorm(100),c=rnorm(100))
> which(names(df)%in%c("b", "c"))
[1] 2 3
df 부분 집합 화에 이것을 사용하면 which () 필요하지 않습니다.
> df_sub <- df[, names(df)%in%c("b", "c")]
> head(df_sub)
b c
1 0.1712754 0.3119079
2 -1.3656995 0.7111664
3 -0.2176488 0.7714348
4 -0.6599826 -0.3528118
5 0.4510227 -1.6438053
6 0.2451216 2.5305453
참조 URL : https://stackoverflow.com/questions/9277363/get-the-column-number-in-r-given-the-column-name
반응형
'Programing' 카테고리의 다른 글
명령 줄에서 Perl 모듈이 시스템에 설치되어 있는지 어떻게 확인할 수 있습니까? (0) | 2020.12.28 |
---|---|
SFTP를 통해 파일을 전송할 때 FTP보다 시간이 오래 걸리는 이유는 무엇입니까? (0) | 2020.12.28 |
DOCTYPE 선언 전에 주석이 나타날 수 있습니까? (0) | 2020.12.28 |
Java의 웹 페이지에서 이미지를 다운로드하는 방법 (0) | 2020.12.28 |
fork () 및 출력 (0) | 2020.12.28 |