我最近被安排在R编码课程中,我遇到了这个问题。我尝试解决这个问题的每一种方式,我的代码都错了。什么是解决这个问题的最好方法?谢谢。
编写一个R程序,它返回向量中一组值的出现次数。
例如,如果向量为[1,2,3,4,4,5,6,5,7,8,9,10,5]
且值集为[5,4]
,则结果为5,因为在向量中有两次出现值4,并且出现三次价值5。
该函数接受输入:
该函数返回:
答案 0 :(得分:2)
以下是一些可以帮助您创建所需功能的提示。这不是最好的方法,但这种方式帮助我理解了我应该做的事情。我正在谈论的这种方式是将你的问题分解成例子或更小的问题。
首先,让我们将您的矢量存储在对象x
中。
x <- c(1,2,3,4,4,5,6,5,7,8,9,10,5)
现在,如果我们输入:
x==4
我们得到:
FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
如果我们输入:
x==5
我们得到了
FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE
如果我们输入:
x==4|x==5
询问x
的每个元素是4还是5,我们得到:
FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE
剩下的事情是计算最后一次输出中TRUE
的数量。
如果我们输入
as.numeric(x==4|x==5)
我们得到了
0 0 0 1 1 1 0 1 0 0 0 0 1
事实上,我们只需输入
即可sum(x==4|x==5)
或
length(x[x==4|x==5])
获得所需的答案5.另一种方法是使用%in%
函数。假设我们有
y <- c(4,5)
然后
sum(x %in% y)
还会在x
中为我们提供所需的4或5个数字。现在,您仍然需要在sum(x %in% y)
和x
中将y
写为函数,以将其用于任意向量x
和任意向量y
。< / p>