Bagaimana cara mengganti nilai inf dengan na di r
Anda dapat menggunakan metode berikut untuk mengganti nilai Inf dengan nilai NA di R:
Metode 1: Ganti Inf dengan NA di Vector
x[is. infinite (x)] <- NA
Metode 2: Ganti Inf dengan NA di semua kolom bingkai data
df[sapply(df, is. infinite )] <- NA
Metode 3: Ganti Inf dengan NA di kolom tertentu pada bingkai data
df[c(' col1 ', ' col2 ')][sapply(df[c(' col1 ', ' col2 ')], is. infinite )] <- NA
Tutorial ini menjelaskan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
df
team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17
Contoh 1: Ganti Inf dengan NA pada vektor
Kode berikut menunjukkan cara mengganti semua nilai Inf dengan nilai NA pada sebuah vektor:
#create vector with some Inf values
x <- c(4, 12, Lower, 8, Lower, 9, 12, 3, 22, Lower)
#replace Inf values with NA
x[is. infinite (x)] <- NA
#view updated vector
x
[1] 4 12 NA 8 NA 9 12 3 22 NA
Perhatikan bahwa semua nilai Inf dari vektor asli telah diganti dengan nilai NA.
Contoh 2: Ganti Inf dengan NA di semua kolom frame data
Kode berikut menunjukkan cara mengganti nilai Inf dengan nilai NA di setiap kolom bingkai data:
#create data frame
df <- data. frame (x=c(4, 5, 5, 4, Inf, 8, Inf),
y=c(10, Lower, Lower, 3, 5, 5, 8),
z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
df
X Y Z
1 4 10 Lower
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 Lower 5 3
6 8 5 12
7 Lower 8 14
#replace Inf values with NA values in all columns
df[sapply(df, is. infinite )] <- NA
#view updated data frame
df
X Y Z
1 4 10 NA
2 5 NA 5
3 5 NA 5
4 4 3 6
5 NA 5 3
6 8 5 12
7 NA 8 14
Perhatikan bahwa nilai Inf di setiap kolom bingkai data telah diganti dengan nilai NA.
Contoh 3: Ganti Inf dengan NA di kolom tertentu pada bingkai data
Kode berikut menunjukkan cara mengganti nilai Inf dengan nilai NA di kolom tertentu pada bingkai data:
#create data frame
df <- data. frame (x=c(4, 5, 5, 4, Inf, 8, Inf),
y=c(10, Lower, Lower, 3, 5, 5, 8),
z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
df
X Y Z
1 4 10 Lower
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 Lower 5 3
6 8 5 12
7 Lower 8 14
#replace Inf values with NA values in columns 'x' and 'z' only
df[c(' x ', ' z ')][sapply(df[c(' x ', ' z ')], is. infinite )] <- NA
#view updated data frame
df
X Y Z
1 4 10 NA
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 NA 5 3
6 8 5 12
7 NA 8 14
Perhatikan bahwa nilai Inf pada kolom “x” dan “y” telah diganti dengan nilai NA.
Namun nilai Inf pada kolom “y” tetap utuh.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara menggunakan is.na di R
Cara menggunakan na.omit di R
Bagaimana cara mengganti blanko dengan NA di R