【发布时间】:2019-02-19 19:39:46
【问题描述】:
我正在尝试创建一个函数,该函数考虑确定数量的样本(河流),每个样本(河流)具有确定数量的观察值。给定 10 个样本,每个样本在对数正态分布中具有 12 个观测值,均值 = 4 且 sd = 1.4,我想获得计算特定数字(6 - 它指的是水质测量的标准数字)的次数。 以下是一项实验的代码,将“限制”视为允许超过 6 的最大观察次数。
set.seed(1001)
nobs<-12
limit<-round(0.10 * nobs, digits = 0)
h2o <- as.data.frame(matrix(rnorm(10*12, mean = 4, sd = 1.4), ncol = 12))
paste(rep("Riv", nrow(h2o)), c(1:nrow(h2o)), sep = "")
rownames(h2o) <- paste(rep("Riv", nrow(h2o)), c(1:nrow(h2o)), sep = "")
colnames(h2o) <- paste(rep("Obs", ncol(h2o)), c(1:ncol(h2o)), sep = "")
#在假设每条河流的观测数为 2 或更多的情况下宣布受损的河流数量?
ifelse(h2o >=6,1,0)
h2o$Test<-rowSums(ifelse(h2o >=6,1,0))
length(h2o$Test[h2o$Test>1])
该函数应恢复以前的数据,并适用于不同样本的不同观察结果。
谢谢
【问题讨论】:
-
拜托,您能指定要传递给函数的参数以及预期的返回值是多少吗?
-
我的参数是
r<-c(10,50,100,500)序列中的河流数量,我从中获取 10、50、100 和 500 个样本来评估水质。 -
我的参数是
r<-c(10,50,100,500)序列中的河流 # 条,我从中获取 10、50、100 和 500 个样本来评估水质。我希望获得数值高于标准限值 6 的河流数的模拟。因此,对于 10 条河流中的 10 个样本,我知道有 20% 的样本超过 6 个。现在,我不仅想要10 x 10 的值,但也有高达 10 x 500 和 500 x 10 至 500 x 500 的值。我有这个循环vec<-seq(10,500,by=10) for(i in vec) { res<-Test(y=i,x=10) results[i]<-res results10<-results[!is.na(results)] }
标签: r function if-statement