Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用R中的特定值替换NA值?_R - Fatal编程技术网

如何用R中的特定值替换NA值?

如何用R中的特定值替换NA值?,r,R,我有一个时间序列数据帧 但该数据包含如下内容: KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adjusted 2017-04-05 627.89 630.17 626.94 630.17 923700 630.17 2017-04-06 630.59 630.59 625.20 630.46 873400 630.46 2017-04

我有一个时间序列数据帧

但该数据包含如下内容:

           KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adjusted
2017-04-05    627.89    630.17   626.94     630.17      923700  630.17
2017-04-06    630.59    630.59   625.20     630.46      873400  630.46
2017-04-07    632.16    633.49   629.61     633.32      833200  633.32
2017-04-10    633.24    633.24   617.16     619.41      865600  619.41
2017-04-11    620.25    625.18   614.21     621.64      813400  622.64
2017-04-12    622.54    622.73   619.27     621.45      695600  621.45
2017-04-13    622.49    624.15   622.38     623.87      742500  623.87
2017-04-14        NA        NA       NA         NA          NA    NA
我想将Na值更改为618.24 618.24 618.24 618.24 742500 618.24

我怎样才能改变它

library(quantmod)
today <- Sys.Date()
kq <- getSymbols("^kq11", from = today-100, to = today, auto.assign = F)
kq
库(quantmod)

今天根据下面林格巴克的评论编辑

在这种特殊情况下,我可能会使用

df$KQ11.Volume[is.na(df$KQ11.Volume)] = 742500
df[is.na(df)] = 618.24

但这只适用于这种特殊情况。OP,对于要用作替换的数字,是否有任何特定的逻辑?

如果您只想将NAs更改为您的序列:

df <- read.table(text="date KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adj
2017-04-05    627.89    630.17   626.94     630.17      923700  630.17
2017-04-06    630.59    630.59   625.20     630.46      873400  630.46
2017-04-07    632.16    633.49   629.61     633.32      833200  633.32
2017-04-10    633.24    633.24   617.16     619.41      865600  619.41
2017-04-11    620.25    625.18   614.21     621.64      813400  622.64
2017-04-12    622.54    622.73   619.27     621.45      695600  621.45
2017-04-13    622.49    624.15   622.38     623.87      742500  623.87
2017-04-14        NA        NA       NA         NA          NA    NA",
                 header=TRUE,stringsAsFactors=FALSE)    

df[is.na(df)] <- c(618.24, 618.24, 618.24, 618.24, 742500, 618.24)

        date KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adjusted
1 2017-04-05    627.89    630.17   626.94     630.17      923700        630.17
2 2017-04-06    630.59    630.59   625.20     630.46      873400        630.46
3 2017-04-07    632.16    633.49   629.61     633.32      833200        633.32
4 2017-04-10    633.24    633.24   617.16     619.41      865600        619.41
5 2017-04-11    620.25    625.18   614.21     621.64      813400        622.64
6 2017-04-12    622.54    622.73   619.27     621.45      695600        621.45
7 2017-04-13    622.49    624.15   622.38     623.87      742500        623.87
8 2017-04-14    618.24    618.24   618.24     618.24      742500        618.24
df
输出:

#            KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adjusted
# 2017-04-05    627.89    630.17   626.94     630.17      923700        630.17
# 2017-04-06    630.59    630.59   625.20     630.46      873400        630.46
# 2017-04-07    632.16    633.49   629.61     633.32      833200        633.32
# 2017-04-10    633.24    633.24   617.16     619.41      865600        619.41
# 2017-04-11    620.25    625.18   614.21     621.64      813400        622.64
# 2017-04-12    622.54    622.73   619.27     621.45      695600        621.45
# 2017-04-13    622.49    624.15   622.38     623.87      742500        623.87
# 2017-04-14    618.24    618.24   618.24     618.24      742500        618.24   

可能是复制品我认为不是复制品。这些问题希望根据列的不同而不是整个列的零,用不同的值替换
NA
s。这些数字是什么<代码>c(618.24618.24618.24618.24742500 618.24
mean,meadian?可能使用?@zx8754我只获得20170414的收盘价。所以我填写的数据是不可避免的。我决定填写OHLC以收盘价。这只是将所有的
NA
转换为零。这不是问题要求的。你是对的,我读得太快了,错过了742在618.24之间为500英尺。感谢您的帮助。我了解了na、locf、na.近似值。很抱歉打扰您,我还有一个问题想知道您的答案。如果数据框包含多个na行(包含na数据),我可以分配特定值来替换它们吗?
df %>% replace_na(list(KQ11.Open =  618.24, KQ11.High = 618.24,
                          KQ11.Low = 618.24, KQ11.Close = 618.24, 
                          KQ11.Volume = 742500, KQ11.Adjusted = 618.24))
#            KQ11.Open KQ11.High KQ11.Low KQ11.Close KQ11.Volume KQ11.Adjusted
# 2017-04-05    627.89    630.17   626.94     630.17      923700        630.17
# 2017-04-06    630.59    630.59   625.20     630.46      873400        630.46
# 2017-04-07    632.16    633.49   629.61     633.32      833200        633.32
# 2017-04-10    633.24    633.24   617.16     619.41      865600        619.41
# 2017-04-11    620.25    625.18   614.21     621.64      813400        622.64
# 2017-04-12    622.54    622.73   619.27     621.45      695600        621.45
# 2017-04-13    622.49    624.15   622.38     623.87      742500        623.87
# 2017-04-14    618.24    618.24   618.24     618.24      742500        618.24