>
내 데이터는 열과 행으로 구성됩니다. 각 열에는 "NA"와 다른 숫자가 있습니다.  예 : column1은 다음과 같습니다.

2 1 NA NA NA 8 NA NA 1 NA 1 NA NA NA NA 15 NA 2 NA 1 NA NA NA NA NA NA 12 NA NA 2 NA NA 2 NA NA NA 6 1 NA NA NA 2 NA NA NA 4 1 NA NA NA 2.

각 열의 숫자에 열 ID를 할당하고 싶습니다.

for(j in 1:54){
    if(!(col[j] <-"NA")){
    col[j] <- i
    }
}

열 1에 대한 예상 결과 :

1 1 NA NA NA 1 NA NA 1 NA 1 NA NA NA NA 1 NA 1 NA 1 NA NA NA NA NA NA 1 NA NA 1 NA NA 1 NA NA NA 1 1 NA NA NA 1 NA NA NA 1 1 NA NA NA 1

** 열 2 : **

2 2 NA NA NA 2 NA NA 2 NA 2 NA NA NA NA 2 NA 2 NA 2 NA NA NA NA NA NA 2 NA NA 2 NA NA 2 NA NA NA 2 2 NA NA NA 2 NA NA NA 2 2 NA NA NA 2

  • 답변 # 1

    사용할 수 있습니다

    v <- c(2, 1, NA, NA, 4, 5, NA)
    id <- ifelse(!is.na(v), 1, NA)
    id
    1  1 NA NA  1 1 NA
    
    

    여기서 for 루프가 필요하지 않습니다. 벡터에 함수를 적용 할 수 있으면 for 루프를 사용하지 않아야합니다.

    또한 위의 코드와 같이 다른 사람이 실제로 사용할 수 있도록 데이터를 제공하십시오.

    수정

    주석에 따르면 여러 열이 있습니다. 동일한 코드를 사용할 수 있습니다. 여기를 참조하십시오

    df <- data.frame(a= c(2, 1, NA, NA, 4, 5, NA), b= c(3, NA, NA, NA, 5, NA, 6))
    id <- sapply(1:ncol(df), function(i){
                 ifelse(!is.na(df[ , i]), i, NA)})
    id
          a  b
    [1,]  1  2
    [2,]  1 NA
    [3,] NA NA
    [4,] NA NA
    [5,]  1  2
    [6,]  1 NA
    [7,] NA 2
    
    

  • 이전 python - 패치 추출 및 이미지 재구성
  • 다음 64 비트 net-snmp 다운로드