楼主: ludu0712
3611 16

[问答] R语言如何按条件循环? [推广有奖]

  • 0关注
  • 0粉丝

本科生

3%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0228
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
232 点
帖子
22
精华
0
在线时间
103 小时
注册时间
2020-4-13
最后登录
2021-8-18

楼主
ludu0712 发表于 2020-4-13 16:55:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
图片是我现在有这样的数据,需要计算出各站点各年某生育期的长度(下一个生育期的日序-上一个的日序+1)并输出,
比如用409和410两行数据,可以计算出区站号56651出苗期到三叶期的长度,日序140-128+1=13
要求输出成这样:

区站号        年                生育期长度                发育期名称
56651        2009                13                       出苗-三叶
52546        2003                25                       播种-出苗
52546        2004                24                       播种-出苗


请问这种循环应该怎么写?既要把第一列区站号提取出来循环,又要在单一区站号的基础上按照年份和发育期名称循环。

向各位大神求教!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言;循环

屏幕截图(103).png (51.85 KB)

屏幕截图(103).png

回帖推荐

drunkfish69 发表于12楼  查看完整内容

沙发
jalonso 发表于 2020-4-13 17:22:57
其实不用循环,我觉得有一招可以哈,你不就是想做后一项-前一项+1么,复制“日序”这列,在excel里新增一列,把日序这列的第一个元素(128)删除,第二个元素作为第一个元素,就是140,160,197...,因为少一个元素,最有一个随便补一个就行,然后直接两列相减,最后+1。你要是在R里处理也可以,一样的思路

藤椅
rosenbloog 发表于 2020-4-13 20:31:26
dplyr包了解一下。

板凳
HanghangKE 学生认证  发表于 2020-4-13 20:34:22
如果是单纯的条件循环可以用for循环套if函数

报纸
drunkfish69 发表于 2020-4-14 08:44:12
  1. A <- c(128,140,160,197,213,248,281,281,268,94,118)
  2. B#日序下移一个
  3. B <- c(A[1], A)
  4. B <- B[-length(B)]

  5. #生育期长度
  6. C <- ifelse((A-B)<0, 1, A-B+1)
复制代码

试试这样能满足要求吗?
发育期名称变成编号也可以这样处理,字符的话转变区域时比较不了
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

地板
ludu0712 发表于 2020-4-14 15:23:50
jalonso 发表于 2020-4-13 17:22
其实不用循环,我觉得有一招可以哈,你不就是想做后一项-前一项+1么,复制“日序”这列,在excel里新增一列 ...
哈哈哈谢谢啦,因为一直没怎么用过循环想试试能不能用循环做,这种方法也很好呀

7
ludu0712 发表于 2020-4-14 15:36:38
drunkfish69 发表于 2020-4-14 08:44
试试这样能满足要求吗?
发育期名称变成编号也可以这样处理,字符的话转变区域时比较不了
好的谢谢啦!还有个问题就是有没有函数能把第一列的区站号提取保存,然后再一个个循环计算不同的区站的结果呢?问题太多了不好意思实在是小白不懂这些

8
drunkfish69 发表于 2020-4-14 15:44:22
ludu0712 发表于 2020-4-14 15:36
好的谢谢啦!还有个问题就是有没有函数能把第一列的区站号提取保存,然后再一个个循环计算不同的区站的结 ...
你回帖把数据直接贴上来,注意用'<>'这个符号的格式。或把数据转成CSV传上来

9
ludu0712 发表于 2020-4-14 16:32:47
drunkfish69 发表于 2020-4-14 15:44
你回帖把数据直接贴上来,注意用''这个符号的格式。或把数据转成CSV传上来
论坛不允许上传csv,我转成txt格式了,麻烦大佬

10
drunkfish69 发表于 2020-4-14 18:35:45
ludu0712 发表于 2020-4-14 16:32
论坛不允许上传csv,我转成txt格式了,麻烦大佬
中文乱码,保存的时候选择UTF编码,再发试试

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 05:05