我有一个非常基本的问题,因为我对 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) 之前已使用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个零。
我试图找到一种将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 ×3