小编DJ-*_*AFC的帖子

将行值添加到 R 中的前一行值

我有一个非常基本的问题,因为我对 R 比较陌生。我想知道如何将列中的值添加到前一个值,并向下重复 1000 个值的列?请注意,我不需要累积和,因此 cumsum 函数没有用。假设我的列称为 WD,我想将 WD1 添加到 WD2,将 WD2 添加到 WD3,将 WD3 添加到 WD4 等等,并将这些总和作为新列输出。有简单的方法吗?非常感谢。

一个可重现的例子:

set.seed(111)
df1 <- data.frame(WD=sample(10))

#result
df1
   WD new
1   6   6
2   7  13
3   3  10
4   4   7
5   8  12
6  10  18
7   1  11
8   2   3
9   9  11
10  5  14
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
8831
查看次数

用前导零创建数字序列

之前已使用Console.writelines函数解决了此问题,但是在我的R版本中不可用,并且我找不到它属于哪个软件包。

我只是想创建一个数字序列,其范围为0-99,且前导零为“ xxx”格式,因此我的数字应为000、001、002 ... 099。

当我使用时:

seq(000:099)
Run Code Online (Sandbox Code Playgroud)

R返回1,2,3等

有没有简单的方法可以做到这一点?令我惊讶的是,它应该比现在容易得多。

这与以前的答案不同,因为我需要在数字0-9前面加上两个零,而在数字10-99前面只需1个零,而前面的问题只是在所有数字前面要求1个零。

r

5
推荐指数
1
解决办法
2482
查看次数

将IF语句应用于R中的整个列

我试图找到一种将IF语句应用于R中的整个列的快速方法,以根据该语句创建1和0的新列。具体来说,我想将降雨> 0的天作为湿天(1),将降雨= 0的天作为干旱天(0)。我的数据采用以下形式:

Day   Month   Year   Rainfall

1       1     1961    2.5

2       1     1961     0

3       1     1961    3.1

4       1     1961     0
Run Code Online (Sandbox Code Playgroud)

我创建了一个循环,如下所示:

for (i in df$Rainfall){

WD=data.frame(ifelse(df$Rainfall>0,1,0)

}
Run Code Online (Sandbox Code Playgroud)

这可以,但是非常慢。有没有更快的方法?

非常感谢。

r

0
推荐指数
1
解决办法
4321
查看次数

标签 统计

r ×3