gpt4 book ai didi

r - 在R中如何填写没有出现在序列中的数字?

转载 作者:行者123 更新时间:2023-12-04 22:39:08 24 4
gpt4 key购买 nike

我有一个数据集,列出了一组像这样的分数的百分位数:

 > percentiles
Score Percentile
1 231 0
2 385 1
3 403 2
4 413 3
5 418 4
6 424 5
7 429 6
8 434 7
9 437 8
10 441 9
11 443 10

我希望“分数”列从 100 到 500。也就是说,我希望分数 100 到 231 与百分位数 0 相关联,分数 232 至 385 与百分位数 1 相关联,等等。是有没有一种简单的方法来填充没有出现在“分数”值序列中的值,使其看起来像下面的数据集?
> percentiles
Score Percentile
1 100 0
2 101 0
3 102 0
4 103 0
5 104 0
6 105 0
7 106 0
8 107 0
9 108 0
10 109 0
--------------------
130 229 0
131 230 0
132 231 0
133 232 1
134 233 1
135 234 1
136 235 1
137 236 1
138 237 1
139 238 1
140 239 1


最佳答案

如果您转换 percentiles对于 data.table,您可以对所有分数为 100:500 的新表进行滚动连接。滚动连接 roll = -Inf本身给出了向后填充行为,但 444:500 值仍然是 NA 所以向前 nafill是在最后添加的。

library(data.table)
setDT(percentiles)

percentiles[data.table(Score = 100:500), on = .(Score), roll = -Inf
][, Percentile := nafill(Percentile, 'locf')]


# Score Percentile
# 1: 100 0
# 2: 101 0
# 3: 102 0
# 4: 103 0
# 5: 104 0
# ---
# 397: 496 10
# 398: 497 10
# 399: 498 10
# 400: 499 10
# 401: 500 10

关于r - 在R中如何填写没有出现在序列中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59400422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com