第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將數(shù)據(jù)框列轉(zhuǎn)換為數(shù)字類型?

如何將數(shù)據(jù)框列轉(zhuǎn)換為數(shù)字類型?

滄海一幻覺 2019-07-23 16:25:48
如何將數(shù)據(jù)框列轉(zhuǎn)換為數(shù)字類型?如何將數(shù)據(jù)框列轉(zhuǎn)換為數(shù)字類型?
查看完整描述

3 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

由于(仍然)沒有人得到復(fù)選標(biāo)記,我認(rèn)為你有一些實(shí)際問題,主要是因?yàn)槟銢]有指定你想要轉(zhuǎn)換成什么類型的矢量numeric。我建議你應(yīng)該應(yīng)用transform函數(shù)來完成你的任務(wù)。


現(xiàn)在我要證明某些“轉(zhuǎn)換異?!保?/p>


# 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)

讓我們一瞥 data.frame


> 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

讓我們運(yùn)行:


> 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" 

現(xiàn)在你可能會(huì)問自己“哪里有異常?” 嗯,我碰到了很奇特的事情R,這是不是在最混雜的東西,但它可以迷惑你,特別是如果你滾進(jìn)睡前閱讀。


這里是:前兩列是character。我故意打電話給第二個(gè)fake_char。找出這個(gè)character變量與Dirk在他的回復(fù)中創(chuàng)建的變量的相似性。它實(shí)際上是一個(gè)numerical轉(zhuǎn)換為的向量character。3 次和4 次的列是factor,最后一個(gè)是“純粹的” numeric。


如果使用transform函數(shù),則可以轉(zhuǎn)換fake_char為變量本身numeric,而不是char變量本身。


> 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

但如果你在做同樣的事情,fake_char和char_fac,你會(huì)很幸運(yùn),并擺脫無NA的:


> 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

如果您保存已轉(zhuǎn)換data.frame并檢查mode并且class,您將獲得:


> 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"

因此,結(jié)論是:是的,您可以將character矢量轉(zhuǎn)換為numeric一個(gè),但numeric前提是它的元素是“可轉(zhuǎn)換”的。如果character向量中只有一個(gè)元素,那么在嘗試將該向量轉(zhuǎn)換為numerical1 時(shí)會(huì)出錯(cuò)。


只是為了證明我的觀點(diǎn):


> 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

現(xiàn)在,只是為了好玩(或練習(xí)),嘗試猜測(cè)這些命令的輸出:


> fac <- as.factor(err)

> fac

???

> num <- as.numeric(fac)

> num

???

親切的問候帕特里克伯恩斯!=)


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

對(duì)我有幫助的東西:如果要轉(zhuǎn)換的變量范圍(或者只有一個(gè)變量),你可以使用sapply。

有點(diǎn)荒謬,但僅舉例如:

data(cars)cars[, 1:2] <- sapply(cars[, 1:2], as.factor)

假設(shè)數(shù)據(jù)幀的第3,6-15和37列需要轉(zhuǎn)換為數(shù)字,可以:

dat[, c(3,6:15,37)] <- sapply(dat[, c(3,6:15,37)], as.numeric)


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果x是dataframe的列名dat,并且x是因子類型,請(qǐng)使用:

as.numeric(as.character(dat$x))


查看完整回答
反對(duì) 回復(fù) 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 2276 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)