r - 如何将函数的输出打印为向量?
问题描述
我必须创建一个名为 large 的函数,将 year1 和 year2 之间的闰年打印为向量。
所以这是我一直在使用的代码:
vast <- function(year1,year2) {
year <- year1
for(year in year1:year2) {
if(((year%%4==0)&(year%%100!= 0))|(year%%400==0))
vast <- print(year)
}
}
当我使用巨大的(2000,2010)时,它应该将(2000,2004,2008)作为可以保存到x中的向量,但我得到:
x <- vast(2000,2010)
[1] 2000
[1] 2004
[1] 2008
x
NULL
所以 x 是空的。我觉得很愚蠢,但我就是想不通。
解决方案
您需要在函数末尾返回值。您可以显式使用return
来执行此操作,或者自动返回函数中的最后一行。
比较运算符也是矢量化的,所以你可以做
vast <- function(year1,year2){
year <- year1 : year2
leap_year <- year[(year %%4 == 0 & year %% 100 != 0) | (year %% 400 == 0)]
return(leap_year)
}
然后打电话vast
x <- vast(2000,2010)
x
#[1] 2000 2004 2008
print(leap_year)
如果要打印年份,可以在函数中添加语句。
推荐阅读
- powerbi - DAX 能否计算跨多个列的运行 P90?
- discord - 如何防止人们添加额外的反应?不和谐 JS
- javascript - v-text-field 文本中心不工作 Vuetify
- python - 从 HTML Python 中删除 Java 脚本
- android - 当我更改 sdk 版本时,我遇到 Theme.Dialog 错误
- java - heroku Getting at=error code=H13 desc="Connection closed without response" method=GET path="/api/test" service=28795ms status=503
- r - getSplits (quantmod) 导入的矩阵根据符号以不同方式成形
- javascript - 第二个查询的未定义变量
- react-native - React Native 应用程序中的组件异常
- git - 我如何在 mac os 的 git 中制作 android studio 默认文本编辑器