Saya telah mencoba membuat fungsi di R yang memungkinkan saya mengubah nilai string:

Jadi misalnya saya memiliki entri "12" di kerangka data saya dan saya ingin mengubah nilai ini menjadi "1-2" menggunakan fungsi() dan kemudian menerapkannya ke kerangka data saya menggunakan apply()

Saya sudah mencoba ini:

mistake_fix<- function() {

df$column1<-  replace(column1, "12", "1-2")


df$column1<- replace(column1, "67", "6-7")

}

Dan kemudian menerapkannya ke kerangka data saya

%>% apply(MARGIN =2, FUN= mistake_fix)

Jelas ada yang salah karena r terus memberi tahu saya bahwa itu tidak dapat menemukan objek "kolom1" Adakah yang bisa membantu saya?

0
user14808367 13 Desember 2020, 17:45

3 jawaban

Jawaban Terbaik

Anda dapat mencoba menggunakan gsub:

mistake_fix <- function(x) gsub("67", "6-7", gsub("12", "1-2", x))

apply(df, 2, mistake_fix)
1
Allan Cameron 13 Desember 2020, 14:53

Anda dapat mencoba menggunakan case_when untuk mengganti beberapa nilai tersebut.

mistake_fix<- function(column1) {
  dplyr::case_when(column1 == '12' ~ '1-2', 
                   column1 == '67' ~ '6-7')
}

Dan kemudian menerapkan fungsi ke semua kolom.

df[] <- lapply(df, mistake_fix)
0
Ronak Shah 13 Desember 2020, 14:54

Kita dapat mengubah fungsi untuk menambahkan argumen ke fungsi dan kemudian menggunakannya di apply

mistake_fix<- function(x) {
     x <- replace(x, "12", "1-2")
    x <- replace(x, "67", "6-7")
   return(x)

    }

apply(df, 2, mistake_fix)
0
akrun 13 Desember 2020, 18:09