大佬教程收集整理的这篇文章主要介绍了使用数据集中其他列的值创建一个新列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个列,其中填充来自我的数据集中一列或另一列的信息,依赖于第三列。
我的数据集充满了 0 和 1 值,如下所示:
df <- data.frame(PatIEntID = c("0002","0004","0005","0006","0009","0010","0018","0019","0020","0027","0039","0041","0042","0043","0044","0045","0046","0047","0048","0049","0055"),RCA = c( 1,1,1),RCB= c(1,RCC = c( 1,StringsAsFactors = F)
第四列df$RCD,需要满足以下条件:
如果 df$RCC 为 1,则 df$RCD= df$RCB,如果 df$RCC 为 0,则 df$RCD= df$RCA
希望这是有道理的。为清楚起见,我附上了一个示例输出。
非常感谢! 最好的问候
library(dplyr)
df %>%
mutate(
RCD = ifelse(test = RCC == 1,yes = RCB,no = RCA)
))
,
你可以试试tidyverse
library(tidyversE)
df %>%
mutate(RCD = case_when(RCC == 1 ~ RCB,RCC == 0 ~ RCA))
PatientID RCA RCB RCC RCD
1 0002 1 1 1 1
2 0004 1 1 1 1
3 0005 0 1 1 1
4 0006 1 1 1 1
5 0009 1 0 0 1
6 0010 1 0 0 1
7 0018 0 0 0 0
8 0019 0 0 0 0
9 0020 0 0 0 0
10 0027 0 0 1 0
11 0039 0 0 1 0
12 0041 0 0 1 0
13 0042 0 0 0 0
14 0043 0 0 0 0
15 0044 1 1 1 1
16 0045 1 0 1 0
17 0046 1 1 1 1
18 0047 0 0 1 0
19 0048 1 1 1 1
20 0049 1 1 1 1
21 0055 1 1 1 1
在基础 R
中只使用 ifelse
df$RCD <- ifelse(df$RCC == 1,df$RCB,df$RCA)
,
只是为了表明有太多方法可以做到这一点
df <- data.frame(PatientID = c("0002","0004","0005","0006","0009","0010","0018","0019","0020","0027","0039","0041","0042","0043","0044","0045","0046","0047","0048","0049","0055"),RCA = c( 1,1,1),RCB= c(1,RCC = c( 1,StringsAsFactors = F)
library(tidyversE)
df %>% rowwise %>%
mutate(RCD = get(c('RCA','RCB')[1 + RCC]))
#> # A tibble: 21 x 5
#> # Rowwise:
#> PatientID RCA RCB RCC RCD
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 0002 1 1 1 1
#> 2 0004 1 1 1 1
#> 3 0005 0 1 1 1
#> 4 0006 1 1 1 1
#> 5 0009 1 0 0 1
#> 6 0010 1 0 0 1
#> 7 0018 0 0 0 0
#> 8 0019 0 0 0 0
#> 9 0020 0 0 0 0
#> 10 0027 0 0 1 0
#> # ... with 11 more rows
由 reprex package (v2.0.0) 于 2021 年 6 月 21 日创建
以上是大佬教程为你收集整理的使用数据集中其他列的值创建一个新列全部内容,希望文章能够帮你解决使用数据集中其他列的值创建一个新列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。