ฉันมีกรอบข้อมูลต่อไปนี้:
library(dplyr)
library(tibble)
df <- tibble(
source = c("a", "b", "c", "d", "e"),
score = c(10, 5, NA, 3, NA ) )
df
ดูเหมือนว่านี้:
# A tibble: 5 x 2
source score
<chr> <dbl>
1 a 10 . # current max value
2 b 5
3 c NA
4 d 3
5 e NA
สิ่งที่ฉันต้องการจะทำคือการแทนที่NA
ในคอลัมน์คะแนนด้วยค่าต่างๆสำหรับปัจจุบันmax + n
เป็นต้นไป โดยn
มีช่วงตั้งแต่ 1 ถึงจำนวนแถวทั้งหมดของdf
ส่งผลให้ในนี้ (เขียนด้วยมือ):
source score
a 10
b 5
c 11 # obtained from 10 + 1
d 3
e 12 # obtained from 10 + 2
ฉันจะบรรลุสิ่งนั้นได้อย่างไร
seq(which(is.na(df$score)))
ให้สั้นลงได้1:sum(is.na(df$score))