我有一个data.frame如下。数据按列txt排序,然后按列val排序。 summ列是val colummn中的值和来自前一行的summ列值的总和,条件是当前行和前一行在txt列中具有相同的值...我怎么能在R中执行此操作?
txt=c(rep("a",4),rep("b",5),rep("c",3))
val=c(1,2,3,4,1,2,3,4,5,1,2,3)
summ=c(1,3,6,10,1,3,6,10,15,1,3,6)
dd=data.frame(txt,val,summ)
> dd
txt val summ
1 a 1 1
2 a 2 3
3 a 3 6
4 a 4 10
5 b 1 1
6 b 2 3
7 b 3 6
8 b 4 10
9 b 5 15
10 c 1 1
11 c 2 3
12 c 3 6
答案 0 :(得分:2)
如果“最早”(英文写得更恰当“最早”)是指最近,这是你预期输出所隐含的,那么你所说的是什么是累积金额。您可以cumsum()
分别对txt
dd <- data.frame(txt=c(rep("a",4),rep("b",5),rep("c",3)), val=c(1,2,3,4,1,2,3,4,5,1,2,3) );
dd$summ <- ave(dd$val,dd$txt,FUN=cumsum);
dd;
## txt val summ
## 1 a 1 1
## 2 a 2 3
## 3 a 3 6
## 4 a 4 10
## 5 b 1 1
## 6 b 2 3
## 7 b 3 6
## 8 b 4 10
## 9 b 5 15
## 10 c 1 1
## 11 c 2 3
## 12 c 3 6
的每个function love.load()
ball = love.graphics.newImage('ball.png')
speed = 300
x, y = 0,0
soccer = love.graphics.newImage('soccer.png')
speed2 = 300
x1, y1 = 20,20
end
function love.update(dt)
if love.keyboard.isDown("right") then
x = x + (speed*dt)
end
if love.keyboard.isDown("left") then
x = x - (speed*dt)
end
if love.keyboard.isDown("up") then
y = y - (speed*dt)
end
if love.keyboard.isDown("down") then
y = y + (speed*dt)
end
if love.keyboard.isDown("d") then
x1 = x1 + (speed2*dt)
end
if love.keyboard.isDown("a") then
x1 = x1 - (speed2*dt)
end
if love.keyboard.isDown("w") then
y1 = y1 - (speed2*dt)
end
if love.keyboard.isDown("s") then
y1 = y1 + (speed2*dt)
end
end
function love.draw()
love.graphics.draw(ball, x,y,0,0.5,0.5)
love.graphics.draw(soccer, x1,y1,0,0.25,0.25)
love.graphics.setBackgroundColor(0,255,0)
end
组进行申请:
<anon>:5:9: 5:14 error: mismatched types:
expected `&core::result::Result<&str, ()>`,
found `core::result::Result<_, _>`
(expected &-ptr,
found enum `core::result::Result`) [E0308]
<anon>:5 Ok(s) => match s.parse() {
^~~~~