R语言如何编写循环输出每个月份对应的天数
问题原因
你使用的嵌套for循环会让每一个月份依次匹配全部12个天数,最终输出12*12=144条重复结果,不符合两个向量一一对应的需求。
修改要点
months和days两个向量长度均为12,内容一一对应,不需要嵌套循环,仅通过单循环遍历索引,同时取出对应位置的月份和天数即可- 原代码中月份拼写有误:
Februari需修正为February,才能和预期输出内容一致 - 要输出带
[1] "内容"的R标准打印格式,直接使用print()搭配字符串拼接函数paste()即可,不需要手动用cat()拼接格式
修正后代码
循环写法
days <- c("31","29","31","30","31","30","31","31","30","31","30","31") # 修正月份拼写错误 months <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") # 单循环遍历索引,匹配对应月份和天数 for (i in seq_along(months)) { print(paste(months[i], "has", days[i], "days")) }
更简洁的向量化写法(无需显式循环,符合R语言使用习惯)
days <- c("31","29","31","30","31","30","31","31","30","31","30","31") months <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") print(paste(months, "has", days, "days"))
以上两种写法运行后均可得到你需要的12条目标输出。
内容的提问来源于stack exchange,提问作者Helan.ge
相关产品推荐
相关产品推荐

