99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2019-03-15 閱讀量: 3869
使用dplyr case_when根據(jù)另一列的值更改NA值

structure(list(a = c(NA, 3, 4, NA, 3, "Council" , "Council", 1), b = c("Council A", 3, 4,

"Council B", 6, 7, 2, 6), c = c(6, 3, 6, 5, 3, 6, 5, 3), d = c(6, 2, 4,

5, 3, 7, 2, 6), e = c(1, 2, 4, 5, 6, 7, 6, 3), f = c(2, 3, 4,

2, 2, 7, 5, 2)), .Names = c("a", "b", "c", "d", "e", "f"), row.names = c(NA,

8L), class = "data.frame")

我試圖a使用dplyr mutuate和case_when基于文本轉(zhuǎn)換對(duì)象b。a如果b在字符串中包含Council,我想將值轉(zhuǎn)換為Council 。

我使用的代碼是 DF %>% select(a, b) %>% mutate(a =case_when(grepl("Council", b) ~"Council"))

但是NA,如果它們不包含字符串Council,則所有值都會(huì)變?yōu)閍。我已經(jīng)審查了其他帖子并嘗試了各種方法,包括ifelse。我想保持相同的數(shù)據(jù)幀只是將任何NA值轉(zhuǎn)換為理事會(huì),但僅限于它是NA值的情況。

解決辦法:從 ?case_when

如果沒(méi)有匹配的情況,則返回NA。

因此,對(duì)于沒(méi)有“理事會(huì)”字樣的情況,b它會(huì)返回NA。

您需要定義TRUE參數(shù)case_when并將其分配給a不保持條件不變時(shí)保持值不變。

library(dplyr)

df %>%

mutate(a = case_when(grepl("Council", b) ~"Council",

TRUE ~ a))

# a b c d e f

#1 Council Council A 6 6 1 2

#2 3 3 3 2 2 3

#3 4 4 6 4 4 4

#4 Council Council B 5 5 5 2

#5 3 6 3 3 6 2

#6 Council 7 6 7 7 7

#7 Council 2 5 2 6 5

#8 1 6 3 6 3 2

在這種情況下,您還可以使用基數(shù)R來(lái)實(shí)現(xiàn)結(jié)果

df$a[grepl("Council", df$b)] <- "Council"

15.5086
1
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子