Làm thế nào để loại bỏ các phần tử khỏi vector trong R? Bằng cách sử dụng cơ sở r [] notation và hàm setdiff () được sử dụng để xóa các giá trị khỏi vector. Trên thực tế bằng cách sử dụng [] ký hiệu, chúng ta có thể chọn các giá trị từ vector và bằng cách phủ định kết quả, bạn có thể loại bỏ các phần tử đã chọn.

Các ví dụ sau đây được đề cập trong bài viết này.

1. Ví dụ nhanh về loại bỏ phần tử khỏi vectơ

Sau đây là các ví dụ nhanh về cách xóa các phần tử hoặc giá trị khỏi vectơ trong R.


# Quick examples
 
# Remove specific value from vector
x[ !x == 'A']

# Remove multiple values by list
x[! x %in% c('A', 'D', 'E')]

# Using setdiff
setdiff(x, c('A','D','E'))

# Remove elements by index
x[-c(1,2,5)]

# Using which
x[-which(x %in% c('D','E') )]

# Remove elements by name
x <- c(C1='A',C2='B',C3='C',C4='E',C5='G')
x[! names(x) %in% c('C1','C2')]

2. Loại bỏ giá trị cụ thể khỏi vectơ

Để xóa một giá trị cụ thể khỏi một vectơ, hãy sử dụng dấu ngoặc nhọn R [] ký hiệu, Nếu bạn không biết [] ký hiệu được sử dụng để chọn các phần tử, bằng cách phủ định điều này, bạn có thể loại bỏ các phần tử. Ví dụ sau loại bỏ giá trị ‘A’.


# Remove specific value from vector
x <- c('A','B','C','D','E','F','B')
x[ !x == 'A']

# Output
#[1] "B" "C" "D" "E" "F" "B"

Hãy xem làm thế nào chúng tôi có được kết quả này


# Explanation
> x == 'A'
[1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
> !x == 'A'
[1] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
> x[ !x == 'A']
[1] "B" "C" "D" "E" "F" "B"

3. Loại bỏ nhiều giá trị khỏi vectơ

Để xóa nhiều giá trị khỏi vectơ, hãy xác định một vectơ hoặc danh sách với các giá trị bạn muốn loại bỏ và sử dụng nó với ký hiệu dấu ngoặc R [] và% trong toán tử%. Toán tử% in% được sử dụng để kiểm tra những giá trị nào cần loại bỏ.


# Remove Multiple Values
x <- c('A','B','C','D','E','F','B')
x[! x %in% c('A', 'D', 'E')]

# Output
#[1] "B" "C" "F" "B"

4. Sử dụng setdiff ()

setdiff() là một hàm cơ sở để loại bỏ các giá trị được chỉ định khỏi vectơ. Sự khác biệt chính giữa cách tiếp cận trên và sử dụng sediff () là, điều này sẽ loại bỏ các bản sao khỏi kết quả. Nếu bạn nhận thấy, trên vectơ của chúng tôi, chúng tôi có ‘B’ hai lần và bằng cách sử dụng sediff () chỉ trả về một giá trị của ‘B’


# Using setdiff
# If x contains duplicat, this is eliminate
x <- c('A','B','C','D','E','F','B')
setdiff(x, c('A','D','E'))

# Output
#[1] "B" "C" "F"

5. Loại bỏ các phần tử theo chỉ mục

Việc xóa các phần tử khỏi vectơ theo chỉ mục có thể được thực hiện chỉ bằng cách chuyển vị trí chỉ mục cho [] ký hiệu và sử dụng toán tử phủ định.


# Remove elements by index
x <- c('A','B','C','D','E','F','B')
x[-c(1,2,5)]

# Output
#[1] "C" "D" "F" "B"

6. Xóa các phần tử theo tên

Để xóa các phần tử khỏi vector theo tên, hãy sử dụng R [] ký hiệu và hàm names (). Hàm names () này trả về các tên từ vectơ và kiểm tra các tên này trong vectơ tên bằng cách sử dụng %in% nhà điều hành. Ví dụ sau đây xóa C1 và C2 khỏi vector.


# Remove elements by name
x <- c(C1='A',C2='B',C3='C',C4='E',C5='G')
x[! names(x) %in% c('C1','C2')]

# Output
# C3  C4  C5 
#"C" "E" "G" 

7. Kết luận

Trong bài viết này, bạn đã học cách xóa các phần tử hoặc giá trị khỏi vectơ trong R bằng cách sử dụng cơ sở R [] ký hiệu và hàm setdiff (). Bằng cách sử dụng những thứ này, tôi đã trình bày cách xóa các phần tử theo tên, theo chỉ mục, xóa giá trị cụ thể, nhiều giá trị khỏi vectơ. Bạn có thể tìm thấy ví dụ hoàn chỉnh từ bài viết này tại Dự án ví dụ về lập trình Github R.