>

데이터 프레임에서 3117 개의 열을 선택하고 싶습니다. 열 이름으로 선택하려고했습니다.

dataframe %>% 
  select(
    'AAACCTGAGCACGCCT-1',
    'AAACCTGAGCGCTTAT-1',
    'AAACCTGAGCGTTGCC-1',
    ......,
    'TTGGAACCACGGACAA-1'
  )

또는

firstpickupnames <- ('AAACCTGAGCACGCCT-1','AAACCTGAGCGCTTAT-1','AAACCTGAGCGTTGCC-1',......,'TTGGAACCACGGACAA-1')

R 콘솔이 방금 대답 한 두 가지 방법

'AAACCTGAGCACGCCT-1','AAACCTGAGCGCTTAT-1','AAACCTGAGCGTTGCC-
1',......,'TTGGAACCACGGACAA-1'
+ )
+

무엇을 의미합니까? R에서 선택할 수있는 열에 제한이 있습니까?


  • 답변 # 1

    콘솔이 응답하는 방식 ( +  (표현식의 나머지 부분을 기다리고 있음을 나타냄)은 콘솔에서 긴 명령 (클립 보드에서 붙여 넣기를 통해 어셈블하려는 경우)의 고유 한 한계가 아닌 콘솔에서 처리 할 수있는 용량에 한계가 있음을 강력히 제안합니다. 선택할 수있는 열 수. 이 제한 사항에 대한 설명서에서 찾을 수있는 유일한 곳은 "콘솔에 입력 된 명령 줄이 약 4095 바이트로 제한되어 있습니다."라는 것입니다.

    주석에서 선택하려는 열 이름이 csv 파일에 있다고 말했습니다. csv 파일의 구조에 대해서는 말하지 않았지만 단일 열 이름 목록이 포함 된 csv 파일이 있다고 가정합니다. 예를 들어 "colnames.csv" 라는 파일을 만들었습니다.  한 줄이 있습니다 :

    Sepal.Width, Petal.Length
    
    

    텍스트 파일에서 열 이름 주위에 따옴표를 수동으로 넣을 필요는 없습니다. 그런 다음 R 콘솔에서 다음을 입력했습니다.

    iris %>% select(one_of(as.character(read.csv("colnames.csv",header = FALSE, strip.white = TRUE,stringsAsFactors = FALSE))))
    
    
    예상대로 작동했습니다. 이 예에서는 2 개의 열만 사용했지만 열 자체가 문제가되지 않았기 때문에 3000 개 이상에서 실패 할 이유가 없습니다.

    csv 파일의 구조가 예제와 다른 경우 read.csv 에 대한 호출을 조정해야합니다.  아마도 문자형 벡터로 변환하는 방식이지만 상황에 맞게이 접근 방식을 조정할 수 있어야합니다.

  • 답변 # 2

    복제 가능한 예가 없으면 정확히 무엇을 찾고 있는지 알기가 어렵습니다. 그러나 dplyr::select()  열을 선택하기위한 몇 가지 옵션이 있으며 dplyr::everything()  당신이 찾고있는 것일 수도 있습니다 :

    library(dplyr)
    # this reorders the column names, but keeps everything without having to name the columns specifically:
    mtcars %>% 
      select(carb, gear, everything()) 
    # from a list of column names:
    keep_columns <- c('cyl','disp','hp')
    mtcars %>% 
      select(one_of(keep_columns)) 
    # specific names, and a range of names:
    mtcars %>% 
      select(hp, qsec:gear) 
    #You could also use  `contains()`, `starts_with()`, `ends_with()`, or `matches()`. Note that calling all of the following at once will give you no results:
    mtcars %>% 
      select(contains('t')) %>%
      select(starts_with('a')) %>% 
      select(ends_with('b')) %>% 
      select(matches('^m.+g$'))
    
    

관련 자료

  • 이전 html - 탐색 모음 위치의 로고
  • 다음 performance - DB2 SQL이 SUM + CASE보다 ID를 기반으로 고유 한 값 수를 얻는 더 좋은 방법