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

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

根據(jù)向量以特定順序對數(shù)據(jù)幀行進行排序

根據(jù)向量以特定順序對數(shù)據(jù)幀行進行排序

FFIVE 2019-10-25 13:11:33
是否有一種更簡單的方法來確保數(shù)據(jù)框的行根據(jù)我在下面的簡短示例中實現(xiàn)的“目標”矢量進行排序?df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2)))df#   name value# 1    a  TRUE# 2    b  TRUE# 3    c FALSE# 4    d FALSEtarget <- c("b", "c", "a", "d")這似乎有點“復雜”,無法完成工作:idx <- sapply(target, function(x) {    which(df$name == x)})df <- df[idx,]rownames(df) <- NULLdf #   name value# 1    b  TRUE# 2    c FALSE# 3    a  TRUE# 4    d FALSE
查看完整描述

3 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

嘗試match:


df <- data.frame(name=letters[1:4], value=c(rep(TRUE, 2), rep(FALSE, 2)))

target <- c("b", "c", "a", "d")

df[match(target, df$name),]


  name value

2    b  TRUE

3    c FALSE

1    a  TRUE

4    d FALSE

只要您target包含與完全相同的元素df$name并且都不包含重復值,它將起作用。


來自?match:


match returns a vector of the positions of (first) matches of its first argument 

in its second.

因此,match找到與target元素匹配的行號,然后我們df以該順序返回。


查看完整回答
反對 回復 2019-10-25
?
30秒到達戰(zhàn)場

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

我更喜歡***_join 在dplyr需要匹配數(shù)據(jù)時使用。一種可能的嘗試


left_join(data.frame(name=target),df,by="name")

請注意,***_joinrequire tbls或data.frame 的輸入


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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