【问题标题】:R: Select a number conditionally from a sequence based on the value of another random selected number from the same rangeR:根据同一范围内另一个随机选择的数字的值,有条件地从序列中选择一个数字
【发布时间】:2021-07-06 21:44:19
【问题描述】:

xc 是 61-69 之间的随机抽样变量。 yc 是一个序列 61-69。 我正在尝试根据 xc 的值有条件地从 yc 中选择一个值,使总和增加到 130。到目前为止,我已经附上了我的 3 次尝试:

xc<-sample(seq(from = 61, to = 69, by = 1), size = 1, replace = FALSE)
yc<-seq(61,69,1)

#returns the logical sequence
df<-sapply(xc,function(a) xc+yc == 130 )
df

# outputs the list of sums
library(magicfor)
magic_for(silent = TRUE)
for (i in 1) {
 (xc+yc[i] == 130)
 put (yc, xc , yc+xc)
}
magic_result_as_dataframe()      
       
#returns logical sequence
yci<-function(a){
    a <- yc+xc==130
    return(a)
    }

yci()

【问题讨论】:

  • 你的问题是?
  • 您第一次尝试使用yc[sapply(xc,function(a) xc+yc == 130)] 应该会返回正确的yc 值。或者干脆yc[xc + yc == 130]

标签: r apply


【解决方案1】:

您不只需要130 - xc 即可获得yc 吗?

另外,我认为没有必要已经定义 yc(如 yc&lt;-seq(61,69,1)),因为它恰好是给定 xc 的一个数字,它将满足条件 xc + yc = 130

return_yc <- function(xc) 130 - xc
set.seed(123)
xc <- sample(seq(from = 61, to = 69, by = 1), size = 1)
xc
#[1] 63

return_yc(xc)
#[1] 67

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多