程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用数据集中其他列的值创建一个新列大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用数据集中其他列的值创建一个新列?

开发过程中遇到使用数据集中其他列的值创建一个新列的问题如何解决?下面主要结合日常开发的经验,给出你关于使用数据集中其他列的值创建一个新列的解决方法建议,希望对你解决使用数据集中其他列的值创建一个新列有所启发或帮助;

我想创建一个列,其中填充来自我的数据集中一列或另一列的信息,依赖于第三列。

我的数据集充满了 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,请注明来意。