R에서 복구하는 방법: sort.int(x, na.last, 내림차순, …) 오류: 'x'는 원자적이어야 합니다.
R을 사용할 때 발생할 수 있는 오류 메시지는 다음과 같습니다.
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 'x' must be atomic
이 오류는 목록을 정렬하려고 할 때 발생합니다.
기본적으로 R은 벡터와 같은 원자 객체만 정렬할 수 있습니다. 따라서 목록과 함께 sort()를 사용하려면 먼저 unlist() 함수를 사용해야 합니다.
다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.
오류를 재현하는 방법
R에 다음 목록이 있다고 가정합니다.
#create list
some_list <- list(c(4, 3, 7), 2, c(5, 12, 19))
#view list
some_list
[[1]]
[1] 4 3 7
[[2]]
[1] 2
[[3]]
[1] 5 12 19
#view class
class(some_list)
[1] "list"
이제 목록의 값을 정렬하려고 한다고 가정해 보겠습니다.
#attempt to sort the values in the list
sort(some_list)
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...):
'x' must be atomic
R은 목록을 직접 정렬할 수 없기 때문에 오류가 발생합니다.
오류를 방지하는 방법
오류를 방지하려면 먼저 다음과 같이 unlist() 함수를 사용해야 합니다.
#sort values in list
sort(unlist(some_list))
[1] 2 3 4 5 7 12 19
목록을 숫자형 벡터로 변환한 unlist() 를 먼저 사용했기 때문에 오류 없이 값 목록을 성공적으로 정렬할 수 있었습니다.
기본적으로 R은 값을 오름차순으로 정렬합니다.
그러나 감소=TRUE를 사용하여 값을 내림차순으로 정렬할 수 있습니다.
#sort values in list in descending order
sort(unlist(some_list), decreasing= TRUE )
[1] 19 12 7 5 4 3 2
이제 값이 내림차순으로 정렬됩니다.
추가 리소스
다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
R에서 수정하는 방법: 인수에 다른 줄 수가 포함됩니다.
R에서 수정하는 방법: 사용하지 않는 인수를 선택하는 중 오류가 발생했습니다.
R에서 수정하는 방법: 잘못된 인수
R에서 복구하는 방법: 교체 길이가 0입니다.