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

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

如何防止ifell()將日期對(duì)象轉(zhuǎn)換為數(shù)字對(duì)象

如何防止ifell()將日期對(duì)象轉(zhuǎn)換為數(shù)字對(duì)象

白板的微信 2019-07-02 10:49:03
如何防止ifell()將日期對(duì)象轉(zhuǎn)換為數(shù)字對(duì)象我正在使用這個(gè)函數(shù)ifelse()操作日期向量。我預(yù)期成績(jī)會(huì)很好Date他驚訝地發(fā)現(xiàn)numeric而是向量。以下是一個(gè)例子:dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'))dates  <- ifelse(dates == '2011-01-01', dates - 1, dates)str(dates)這特別令人驚訝,因?yàn)閳?zhí)行整個(gè)向量的操作將返回Date對(duì)象。dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05'))dates <- dates - 1str(dates)我應(yīng)該使用其他功能來操作嗎?Date矢量?如果是,什么功能?如果沒有,我如何強(qiáng)制ifelse返回與輸入類型相同的向量?的幫助頁(yè)ifelse這表明這是一個(gè)特性,而不是一個(gè)bug,但我仍然很難為我發(fā)現(xiàn)的令人驚訝的行為找到一個(gè)解釋。
查看完整描述

3 回答

?
Helenr

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

你可以用dplyr::if_else.

從…dplyr 0.5.0發(fā)布說明: "[if_else]有更嚴(yán)格的語(yǔ)義ifelse()*truefalse參數(shù)必須是相同的類型。這提供了一種不太令人驚訝的返回類型,并保留S3向量,如日期" .

library(dplyr)dates <- if_else(dates == '2011-01-01', dates - 1, dates)str(dates)# Date[1:5], format: 
"2010-12-31" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05"


查看完整回答
反對(duì) 回復(fù) 2019-07-02
?
滄海一幻覺

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

它與文件有關(guān)價(jià)值ifelse:

長(zhǎng)度和屬性相同的向量(包括維度和“class“)test的值和數(shù)據(jù)值。yesno..答案的模式將被迫從邏輯上首先容納任何從yes然后任何從no.

歸結(jié)到它的含意,ifelse使元素失去它們的級(jí)別和日期,失去它們的類,并且只恢復(fù)它們的模式(“數(shù)值”)。試一試:

dates[dates == '2011-01-01'] <- dates[dates == '2011-01-01'] - 1str(dates)# Date[1:5], format: "2010-12-31" "2011-01-02" "2011-01-03"
 "2011-01-04" "2011-01-05"

您可以創(chuàng)建一個(gè)safe.ifelse:

safe.ifelse <- function(cond, yes, no){ class.y <- class(yes)
                                  X <- ifelse(cond, yes, no)
                                  class(X) <- class.y; return(X)}safe.ifelse(dates == '2011-01-01',
                                   dates - 1, dates)# [1] "2010-12-31" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05"

稍后請(qǐng)注意:我看到哈德利建立了一個(gè)if_else進(jìn)入數(shù)據(jù)整形包的magrittr/dplyr/tidyr復(fù)合體中。


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

添加回答

舉報(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)