!° enter image description here
我现在正在学习R,碰到了一个难题。我该如何给出身高超过1500万的人口比例的代码。(图中问题5)
尝试使用for循环,但无法确定向量的输入内容。我希望从15 m及以上的值中截取
d<- read.csv('Eucalyptus1_.csv')
str(d)
hight <- (d$hgt)
sample(hight, size = 5)
sample1<-sample(hight, size = 5)
mean(sample1)
median(sample1)
sd(sample1)
quantile(sample1)
我在纠结的是-
for (sample1 > 15 in vector) {
}
1条答案
按热度按时间tuwxkamq1#
矢量化
理解R的矢量化本质是很重要的,你几乎不需要
for
循环。什么是向量?例如,数据中的列
hgt
本质上就是向量。名为hgt
的变量包含多个值。让我们重新创建一个示例向量(包含多个值的名为x的变量)
R中的许多运算都是矢量化的,这意味着它们可以同时在向量的每个元素上执行,而不需要一次一个地遍历每个元素。
下面是一个例子:
结果,我们得到另一个向量,其中对原始向量的每个元素执行操作
+ 1
。因此,您将不需要
for
循环。只需将
+ 1
操作替换为适合您的问题的操作。您正在寻找的是:
hgt
中的每个元素是否满足特定条件,例如> 15
"条件检查"操作在R中通过逻辑运算符完成,例如
>
==
或<
或<=
或>=
或!=
。让我们找出x中为
> 3
的值。我们得到的是另一个向量,其中包含
x
的每个元素的条件检查结果。现在还有一个概念缺失了,如何从向量中提取某些值。
这是通过索引操作符
[ ]
来完成的。例如,如果我想提取大于3的值,我会写x[x > 3]
。在你的脑海中读到这句话:"给我x的值,其中x大于3"。抽样分布
我想指出的是,你错过了一个重要的步骤,你的老师是希望你这样做。这是重复抽样过程+计算所需的统计量为每个样本1000次,以获得抽样分布check this out for a real life hands on example why this should even be important。
(记得我告诉过你 * 几乎不要 * 使用
for
循环。也许使用一个循环来运行同一个函数1000次是合适的。)