dt = data.table(x = c(1,1,2,2,2,2,3,3,3,3))
dt[, y := if(.N > 2) .N else NA, by = x] # fail
dt[, y := if(.N > 2) .N else NA_integer_, by = x] # good
NA
에 유형이 있고 정수가 아니기 때문에 첫 번째 그룹화가 실패합니다. 데이터 테이블에이를 무시하고 일관성을 유지하는 모든 유형을 만들기 위해 모든 NAs를 만들도록 지시하는 방법이 있습니까?R data.table NA 유형 일관성
여기서 수동으로 NA_integer
을 설정할 수 있지만 다른 유형의 열이 많으면 모든 NA 유형을 올바르게 설정하기가 어렵습니다.
현재 날짜/IDate/ITime에는 어떤 유형의 NA를 사용해야합니까?
@RichardScriven 두 번째 작품은 확실합니다. RStudio를 사용하고 있습니까? RStuidio는 새 명령을 성공적으로 실행할 때 이전 오류 메시지가 계속 표시되는 경우가 있습니다. – jf328
@RichardScriven 오, 왜 그런지 알 겠어. 두 개를 순서대로 실행하지 마십시오. 실패한 명령은 실제로 테이블을 변경합니다 – jf328
"x"컬럼은 "정수"가 아닙니다 -'.N' 때문에 "정수"가 필요합니다. 따라서'.N'을 리턴 값으로 사용하면 하드 코드 'NA_integer_'는 다른'typeof'에 대한 것입니다. 다른 경우에는 반환 값 (여기서는'NA')의'storage.mode'를 적절한 타입으로 설정하십시오. –