Nasıl bir kare sütun veri türü sayısal dönüştürmek için?
Nasıl sayısal bir veri türü için bir kare sütun dönüştürme?
CEVAP
(Hala) kimse onay işareti var bu yana, çoğunlukla numeric
dönüştürmek istediğini belirtildi değil çünkü aklımda bazı pratik bir sorun olduğunu sanıyorum. Görevinizi tamamlamak için transform
fonksiyon atanması gerektiğini öneriyorum.
Şimdi bazı göstermek üzereyim "dönüşüm anomali":
# create dummy data.frame
d <- data.frame(char = letters[1:5],
fake_char = as.character(1:5),
fac = factor(1:5),
char_fac = factor(letters[1:5]),
num = 1:5, stringsAsFactors = FALSE)
Bize data.frame
Bir Bakış atalım
> d
char fake_char fac char_fac num
1 a 1 1 a 1
2 b 2 2 b 2
3 c 3 3 c 3
4 d 4 4 d 4
5 e 5 5 e 5
ve bizi yönetmesine izin:
> sapply(d, mode)
char fake_char fac char_fac num
"character" "character" "numeric" "numeric" "numeric"
> sapply(d, class)
char fake_char fac char_fac num
"character" "character" "factor" "factor" "integer"
Şimdi muhtemelen kendinize sorun . ben^>"Nerede bir anormallik var?"Peki, Ar-oldukça tuhaf şeyler çarptı ettim, ve bu değildiren şaşırtıcı şey, ama özellikle yatağa atmadan önce bunu okursanız karıştırmayın.
O da şu: ilk iki sütun character
. Kasten 2 aradımnd15**. Dirk cevap olarak " yaratan bir character
bu değişken benzerlik nokta. Aslında numerical
vektör character
dönüştürülür. 3rdve 4thsütun factor
ve son bir "saf" numeric
. vardır
transform
fonksiyonu kullanmak, numeric
ama char
değişken içine fake_char
dönüştürebilirsiniz.
> transform(d, char = as.numeric(char))
char fake_char fac char_fac num
1 NA 1 1 a 1
2 NA 2 2 b 2
3 NA 3 3 c 3
4 NA 4 4 d 4
5 NA 5 5 e 5
Warning message:
In eval(expr, envir, enclos) : NAs introduced by coercion
ama eğer aynı şeyi yaparsan fake_char
char_fac
, şanslı, ve uzakta hiçbir şey NA: var
> transform(d, fake_char = as.numeric(fake_char),
char_fac = as.numeric(char_fac))
char fake_char fac char_fac num
1 a 1 1 1 1
2 b 2 2 2 2
3 c 3 3 3 3
4 d 4 4 4 4
5 e 5 5 5 5
Dönüşüm data.frame
Kaydet ve mode
class
için onay: var
> D <- transform(d, fake_char = as.numeric(fake_char),
char_fac = as.numeric(char_fac))
> sapply(D, mode)
char fake_char fac char_fac num
"character" "numeric" "numeric" "numeric" "numeric"
> sapply(D, class)
char fake_char fac char_fac num
"character" "numeric" "factor" "numeric" "integer"
Yani, sonuç:. ben^>Evet, numeric
bir character
vektör dönüştürebilirsiniz, ancak bu unsurlar "Cabrio" numeric
.Eğer vektör character
sadece bir öğe varsa, numerical
bir vektör dönüştürmeye çalışırken hata alırsınız.
Ve sadece benim açımdan kanıtlamak için:
> err <- c(1, "b", 3, 4, "e")
> mode(err)
[1] "character"
> class(err)
[1] "character"
> char <- as.numeric(err)
Warning message:
NAs introduced by coercion
> char
[1] 1 NA 3 4 NA
Ve şimdi, sadece zevk için (ya da uygulama), Bu komut çıktısını tahmin etmeye çalışın:
> fac <- as.factor(err)
> fac
???
> num <- as.numeric(fac)
> num
???
Biraz Patrick Burns getirmedi! =)
Nasıl tarih sadece SQL Server datetime...
Nasıl bir bilgi kaybı olmadan tam sayı...
Nasıl veri kaybı olmadan SQL Server ve...
Nasıl bir veri tek bir sütunu yeniden ...
nasıl üç sütun bootstrap kullanarak ng...