gpt4 book ai didi

r - 如何从 R 中的多行变量生成新变量

转载 作者:行者123 更新时间:2023-12-05 01:03:49 25 4
gpt4 key购买 nike

这是数据:

a =  c(1,0,0,NA,0,1)
b = c(0,1,0,NA,NA,0)
c = c(0,1,0,NA,NA,NA)
cbind(a,b,c) -> df

我想生成一个名为 x 的变量。它需要以下要求:

  1. 只要三行中有一个‘1’,x就是‘1’;否则 x 为“0”。
  2. 仅当所有三行都缺失且没有“1”时,x 作为缺失值返回,NA
df
a b c x
[1,] 1 0 0 1
[2,] 0 1 1 1
[3,] 0 0 0 0
[4,] NA NA NA NA
[5,] 0 NA NA NA
[6,] 1 0 NA 1

最佳答案

我们可以编写一个自定义函数来检查每一行数据。使用 apply 将函数应用到每一行。

check_row <- function(x) {
#Return 1 if any value is 1
if(any(x == 1, na.rm = TRUE)) return(1)
#return 0 if all the values are 0
if(all(x %in% 0)) return(0)
#else return NA
else NA
}

df <- cbind(df, x = apply(df, 1, check_row))
df

# a b c x
#[1,] 1 0 0 1
#[2,] 0 1 1 1
#[3,] 0 0 0 0
#[4,] NA NA NA NA
#[5,] 0 NA NA NA
#[6,] 1 0 NA 1

关于r - 如何从 R 中的多行变量生成新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73431820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com