Saya mengganti koma dengan titik di kolom data.frame

data[,22] <- as.numeric(sub(",", ".", sub(".", "", data[,22], fixed=TRUE), fixed=TRUE))

Tetapi saya memiliki nilai yang terlihat seperti ini: 110.00, 120.00, 130.00...

Saat mengganti, saya mendapatkan nilai: 11000.0, 12000.0, 130000.0

Dan saya ingin mendapatkan: 110.0,120.0, 130.0....

Kolom 22 data.frame saya:

|    n   |
|--------|
|   92,5 |
|   94,5 |
|   96,5 |
|  110.00|
|  120.00|
|  130.00|

Apa yang ingin saya dapatkan:

|    n   |
|--------|
|   92.5 |
|   94.5 |
|   96.5 |
|  110.0|
|  120.0|
|  130.0|

Atau

|    n   |
|--------|
|   92.5 |
|   94.5 |
|   96.5 |
|  110.00|
|  120.00|
|  130.00|
0
Дмитрий Юзов 18 Mei 2021, 05:32

3 jawaban

Jawaban Terbaik

Jangan mengganti titik karena sudah dalam format yang Anda inginkan. Ganti hanya koma menjadi titik dan ubah data menjadi numerik.

data[[22]] <- as.numeric(sub(',', '.', fixed = TRUE, data[[22]]))
2
Ronak Shah 18 Mei 2021, 03:21

Anda dapat menggunakan gsub seperti di bawah ini

transform(
  df,
  n = as.numeric(gsub("\\D", ".", n))
)

Di mana karakter non-digital, yaitu, "," atau ".", diganti dengan "."

2
ThomasIsCoding 18 Mei 2021, 20:08

Menggunakan str_replace

library(stringr)
data[[22]] <- as.numeric(str_replace(data[[2]], ",", fixed(".")))
2
akrun 18 Mei 2021, 20:01