根据R中的最后可用值进行外推
我的数据是这样的根据R中的最后可用值进行外推,r,R,我的数据是这样的 > data ID Price 1 1 1 2 2 3 3 3 NA 4 4 NA 5 5 7 6 6 6 7 7 NA 8 8 NA 9 9 NA 10 10 10 > data_final ID Price 1 1 1 2 2 3 3 3 3 4 4 3 5 5 7 6 6
> data
ID Price
1 1 1
2 2 3
3 3 NA
4 4 NA
5 5 7
6 6 6
7 7 NA
8 8 NA
9 9 NA
10 10 10
> data_final
ID Price
1 1 1
2 2 3
3 3 3
4 4 3
5 5 7
6 6 6
7 7 6
8 8 6
9 9 6
10 10 10
我想用最后一个可用的值来外推值,这样我的数据看起来像这样
> data
ID Price
1 1 1
2 2 3
3 3 NA
4 4 NA
5 5 7
6 6 6
7 7 NA
8 8 NA
9 9 NA
10 10 10
> data_final
ID Price
1 1 1
2 2 3
3 3 3
4 4 3
5 5 7
6 6 6
7 7 6
8 8 6
9 9 6
10 10 10
非常感谢您的帮助我们可以使用
na.locf
library(zoo)
data$Price <- na.locf(data$Price)
data$Price
#[1] 1 3 3 3 7 6 6 6 6 10
图书馆(动物园)
数据$Price我们可以使用na.locf
library(zoo)
data$Price <- na.locf(data$Price)
data$Price
#[1] 1 3 3 3 7 6 6 6 6 10
图书馆(动物园)
数据$Price您可以在tidyr中使用fill
library(tidyr)
> fill(df, Price)
ID Price
1 1 1
2 2 3
3 3 3
4 4 3
5 5 7
6 6 6
7 7 6
8 8 6
9 9 6
10 10 10
您可以在tidyr中使用fill
library(tidyr)
> fill(df, Price)
ID Price
1 1 1
2 2 3
3 3 3
4 4 3
5 5 7
6 6 6
7 7 6
8 8 6
9 9 6
10 10 10
下面是base R中的一个方法:
# construct data.frame
data <- data.frame("ID"=1:10, "Price"=c(1,3,NA,NA,7,6,NA,NA,NA,10))
# loop through vector iteratively replacing subsets of missing values
while(any(is.na(data$Price))) {
data[, "Price"][is.na(data$Price)] <- data[, "Price"][which(is.na(data$Price))-1]
#构造data.frame
数据这里有一个以R为基数的方法:
# construct data.frame
data <- data.frame("ID"=1:10, "Price"=c(1,3,NA,NA,7,6,NA,NA,NA,10))
# loop through vector iteratively replacing subsets of missing values
while(any(is.na(data$Price))) {
data[, "Price"][is.na(data$Price)] <- data[, "Price"][which(is.na(data$Price))-1]
#构造data.frame
数据参见-例如-,以及?近似
Hmm的参数,哪种方法对第一个位置的NA具有鲁棒性参见-例如-,以及?近似
Hmm的参数,哪种方法对第一个位置的NA具有鲁棒性