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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

%in%和==之間的差異

%in%和==之間的差異

動漫人物 2019-10-21 12:42:08
df <- structure(list(x = 1:10, time = c(0.5, 0.5, 1, 2, 3, 0.5, 0.5, 1, 2, 3)), .Names = c("x", "time"), row.names = c(NA, -10L), class = "data.frame")df[df$time %in% c(0.5, 3), ]##     x time## 1   1  0.5## 2   2  0.5## 5   5  3.0## 6   6  0.5## 7   7  0.5## 10 10  3.0df[df$time == c(0.5, 3), ]##     x time## 1   1  0.5## 7   7  0.5## 10 10  3.0%in%和==這里和有什么不一樣?
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

問題是向量回收。


您的第一行完全符合您的期望。它檢查什么的元素df$time都在c(0.5, 3),并返回它們的值。


您的第二行比較棘手。實際上等于


df[df$time == rep(c(0.5,3), length.out=nrow(df)),]

看到這一點,讓我們看看使用vector會發(fā)生什么rep(0.5, 10):


rep(0.5, 10) == c(0.5, 3)

[1]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE

查看它如何返回每個奇數值。本質上它與向量匹配0.5c(0.5, 3, 0.5, 3, 0.5...)


您可以操縱向量以這種方式不產生匹配項。取向量rep(c(3, 0.5), 5):


rep(c(3, 0.5), 5) == c(0.5, 3)

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

他們都是假的。您將每0.5匹配3,反之亦然。


查看完整回答
反對 回復 2019-10-21
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊


df$time == c(0.5,3)

第c(0.5,3)一個以的形式廣播df$time,即c(0.5,3,0.5,3,0.5,3,0.5,3,0.5,3)。然后,將兩個向量逐個元素進行比較。


另一方面,


df$time %in% c(0.5,3)

檢查的每個元素是否df$time屬于集合{0.5, 3}。


查看完整回答
反對 回復 2019-10-21
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

這是一個老話題,但是我在任何地方都沒有看到這個答案,它可能與某些人有關。


兩者之間的另一個區(qū)別是對NA(丟失值)的處理。


NA == NA

[1] NA

NA %in% c(NA)

[1] TRUE


查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 869 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號