在数据框中使用现有变量名称创建一个新变量,在匹配每个变量列表中的非 NA 值时填充它

卡洛斯·加西亚

我想用现有变量的名称在 dfABy 中创建一个列 - C - 当在列表 A 或 B 中它是“非 NA”值时。例如,我的 df 是:

             >dfABy 
             A    B 
             56   NA  
             NA   45  
             NA   77  
             67   NA  
             NA   65  

我参加的结果是:

             > dfABy
             A    B   C
             56   NA  A
             NA   45  B
             NA   77  B
             67   NA  A
             NA   65  B
tmfmk

使用的一种选择dplyr可能是:

df %>%
    rowwise() %>%
    mutate(C = names(.[!is.na(c_across(everything()))]))

      A     B C    
  <int> <int> <chr>
1    56    NA A    
2    NA    45 B    
3    NA    77 B    
4    67    NA A    
5    NA    65 B

或者加上purrr

df %>%
    mutate(C = pmap_chr(across(A:B), ~ names(c(...)[!is.na(c(...))])))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从我的数据框中创建一个虚拟变量矩阵;使用`NA`表示缺失值

创建一个变量,该变量等于每个变量的id的最后一个非NA值

以另一个变量的值为条件,用先前行中的非NA值替换数据框中变量的NA值

使用 R 中另一个数据框中的值在数据框中创建新变量

在数据框中创建一个新变量并一步更改其值

创建一个新变量,直到另一个变量的第一个非NA值均为0,然后再为1(在组中)

使用 lapply 在数据框中填充 NA 值

R:在数据框中:将列中的第一个非NA值设置为NA

两组变量中的每一组中有一个或多个非 NA 值

计算由数据帧 R 中的另一个变量分组的最大连续重复非 NA 值

在值之间的数据框中填充NA

用另一个变量的值替换一个变量中的NA

一次拆开一个以上级别时如何填充na值

R:如何在数据框中创建一个新列,从基数上计算观察值对变量具有相同值的次数

如何使用NA或数字创建数字变量,具体取决于R数据框中的另一个变量

根据其他数据框中的匹配值在数据框中创建新变量

遍历向量,创建一个新变量,当第一个向量减去两个其他向量都不为NA时,该变量

如果现有变量位于数据框中的两个值之间,则创建等于1的新变量

创建一个变量并用值填充,其名称与R中的数据集名称相同

使用来自另一个数据框的值作为R中的变量名称来对数据框进行变异

r - 使用数据框列中的下一个非 na 值进行计算

用最后一个不是 NA 的值填充 NA 列值(na.locf by column)

将变量中的值设置为NA,条件是另一个变量

基于两列在一个数据框中填充 NA 值

用以前的非 NA 可用值 R 填充 NA

根据现有变量的值创建一个新的指标变量

如何从变量中获取第一个和最后一个非Inf,非NaN,非NA,非0值?

如何根据R中同时存在的多个现有变量的值创建一个新变量?

使用pd.merge时填充NA