gpt4 book ai didi

r - 如何从 R 中的特定列中选取值

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

我的数据是以下形式:

y<-data.frame(atp=c(1,0,1,0,0,1),
ssmin=c(2,NA,3,NA,NA,1),
Day_1=round(runif(6,5,11),0),
Day_2=round(runif(6,88,110),0),
Day_3=round(runif(6,90,211),0))

我需要创建一个新列,它根据 第 2 列(ssmin) 中的值从 第 3、4 或 5 列 中选取值。输出将是这样的:

FDRT<-c(89,NA,175,NA,NA,7)

我正在尝试以下命令,但这没有帮助

y$new<- y[which(y$atp==1),na.omit(2+y$ssmin)]

任何人都可以帮助我如何为它编写代码,因为我的数据是大块的,我不能单独写入值。

最佳答案

我认为这可能是您想要做的,但我不确定:

set.seed(1)
y<-data.frame(atp=c(1,0,1,0,0,1),
ssmin=c(2,NA,3,NA,NA,1),
Day_1=round(runif(6,5,11),0),
Day_2=round(runif(6,88,110),0),
Day_3=round(runif(6,90,211),0))
y
# atp ssmin Day_1 Day_2 Day_3
# 1 1 2 7 109 173
# 2 0 NA 7 103 136
# 3 1 3 8 102 183
# 4 0 NA 10 89 150
# 5 0 NA 6 93 177
# 6 1 1 10 92 210

x <- vapply(y$ssmin, function(x) unique(grep(x, names(y), value = TRUE)),
vector("character", 1L))

Z <- vector(length = length(x))
for (i in sequence(nrow(y))) {
Z[i] <- if (is.na(x[i])) NA else y[i, x[i]]
}
Z
# [1] 109 NA 183 NA NA 10

关于r - 如何从 R 中的特定列中选取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20395886/

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