新建一列的mutate和ifelse,但在R中保留NAs。

我有一个简单的问题,但它给我带来了困难。

我希望用ifelse函数重新编码一个varibale,但我想把NAs(在变量 “party “中)保留为NAs。

这就是我正在做的事情。我有一个带有投票选择的变量(”party”),如果参与者选择了一组特定的政党,我想重新编码一个新的变量(”RRP”)。

df<- df %>%
  mutate(RRP = if_else(party %in% c("4",#SPP/UDC
                                    "12",#Swiss Democrats
                                    "13",#FDU
                                    "14", #PSL
                                    "15"), 1, 0))

问题是在 “党派 “变量中有NAs的参与者 现在被重新编码为0,因为他们没有满足ifelse的条件。

我也试过这样做。

df<- df %>%
  mutate(RRP = if_else(party %in% c("4",#SPP/UDC
                                    "12",#Swiss Democrats
                                    "13",#FDU
                                    "14", #PSL
                                    "15"), 1, 0,  na.rm=TRUE))

但它只是产生了一个错误。

你有什么其他的想法吗?

非常感谢!我有一个简单的问题,但它是一个简单的问题。

解决方案:

%in% 返回 FALSE 对于 NA 价值而非 NA. 所以当使用它在 ifelseif_else 它执行的是 FALSE 其中的条件。我们可以用 case_when 这里

library(dplyr)

df %>%
  mutate(RRP = case_when(party %in% c(4, 12:15) ~ 1, 
                         is.na(party) ~ NA_real_, 
                          TRUE ~ 0))
#  party RRP
#1    13   1
#2    14   1
#3    15   1
#4    16   0
#5    17   0
#6    NA  NA

数据

df <- data.frame(party = c(13:17, NA))

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在 react native 中从普通函数中获取上下文值?(没有使用Context或类组件)

2022-9-8 22:11:26

未分类

将计数器转化为最终数组

2022-9-8 22:11:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索