gpt4 book ai didi

r - 相关错误: 'x' must be numeric

转载 作者:行者123 更新时间:2023-12-03 22:00:05 27 4
gpt4 key购买 nike

我有一个XTS数据集,其中包含许多股票收盘价,称为:dataset。然后,我想通过cor()查找它们的返回是否有任何相关性,但是我收到一条错误消息:Error in cor(RETS) : 'x' must be numeric

这是我所做的:

RETS <- CalculateReturns(dataset, method= c("log")) # Calculate returns Via PerformanceAnalytics
RETS<- na.locf(RETS) #Solves missing NAs by carrying forward last observation
RETS[is.na(RETS)] <- "0" #I then fill the rest of the NAs by adding "0"

这是 RETS的示例
    row.names   A.Close    AA.Close AADR.Close  AAIT.Close   AAL.Close
1 2013-01-01 0 0 0 0 0
2 2013-01-02 0.0035 0.0088 0.0044 -0.00842 0
3 2013-01-03 0.0195 0.0207 -0.002848 -0.00494 0
4 2013-01-06 -0.0072 -0.0174 0.0078 -0.00070 0
5 2013-01-07 -0.0080 0 -0.01106 -0.03353 0
6 2013-01-08 0.0266 -0.002200 0.006655 0.0160 0
7 2013-01-09 0.0073 -0.01218 0.007551 0.013620 0

然后执行关联:
#Perform Correlation
cor(RETS) -> correl
Error in cor(RETS1) : 'x' must be numeric

#Tried using as.numeric
cor(as.numeric(RETS), as.numeric(RETS) -> correl

但是答案是“1”。我也尝试在 psych中使用相关函数,但得到相同的错误消息。

最佳答案

我将@Roland的答案添加到结束该问题的位置。

问题是使用

RETS[is.na(RETS)] <- "0"

正在将所有数据转换为字符,因为将任何字符值添加到数值会自动将data.types更改为字符。因此,当您进行关联时,就无法对字符值进行关联。所以如果你只是做
RETS[is.na(RETS)] <- 0

相反,您应该避免转换问题。

除了将缺失值设置为 NA之外,您还可以考虑显式告诉 cor如何处理缺失值。例如
cor(RETS, use="pairwise.complete.obs")

只会针对两个都不为NA的那些变量对计算两个变量之间的相关性。有关所有选项,请参见 ?cor帮助页面。

关于r - 相关错误: 'x' must be numeric,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076527/

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