如何解决在R中查找功能
我每个月的累计天数为:
N_days_months = c(31,29,31,30,31)
N_days_months_cum <- cumsum(N_days_months)
和一个等于:
的变量DOY_first = 239
当我应用find
函数时:
IND_DUM <- find(DOY_first < N_days_months_cum)
我收到以下错误:**Error: is.character(what) is not TRUE**
-
如何解决此问题?
-
有人可以解释
find
函数在这里做什么吗?
解决方法
find()
函数采用字符串并在内存中查找对象。您试图在某个条件为真的数值向量中找到第一个位置。试试这个。
进行比较将返回逻辑向量。 N_days_months_cum
中的最后五个条目大于239。
DOY_first < N_days_months_cum
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
我们可以使用which()
返回值为TRUE
的逻辑向量的索引。
which(DOY_first < N_days_months_cum)
[1] 8 9 10 11 12
要获得第一个值,请对其结果进行子集化。
which(DOY_first < N_days_months_cum)[1]
[1] 8
如果您希望N_days_months_cum
中的第一个值与此索引匹配,请使用上述内容对向量进行子集化。
N_days_months_cum[which(DOY_first < N_days_months_cum)[1]]
[1] 244
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。