gpt4 book ai didi

r - 求和 R 中 k 个变量的正值

转载 作者:行者123 更新时间:2023-12-04 10:47:33 25 4
gpt4 key购买 nike

我想先找个max of 0 or j哪里j是任何变量,然后对数据帧的 k (k=1,2,...k) 个变量求和 data .在 stata ,我做了如下:

 gen sum=max(0,x)+max(0,y)+max(0,z)+...+max(0,k)

R我使用了以下方法:
data$sum<-ifelse(data$x<0,0,data$x*1)+ifelse(data$y<0,0,data$y*1)+ifelse(data$z<0,0,data$z*1)+...+ifelse(data$k<0,0,data$k*1)

我想知道 R 中是否有替代且有效的方法做同样的事情。

最佳答案

尝试这个:

mycols   <- c("x", "y", "z", "k")
data$sum <- rowSums(data[mycols] * (data[mycols] > 0))

检查一些示例数据:
data <- data.frame(x = runif(10) - 0.5,
y = runif(10) - 0.5,
z = runif(10) - 0.5,
k = runif(10) - 0.5)

identical(rowSums(data[mycols] * (data[mycols] > 0)), # mine
ifelse(data$x < 0, 0, data$x * 1) + # yours
ifelse(data$y < 0, 0, data$y * 1) +
ifelse(data$z < 0, 0, data$z * 1) +
ifelse(data$k < 0, 0, data$k * 1))
# [1] TRUE

关于r - 求和 R 中 k 个变量的正值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289815/

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