Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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的相关性;数字的_R_Correlation - Fatal编程技术网

R的相关性;数字的

R的相关性;数字的,r,correlation,R,Correlation,我以前处理过R的相关算法,但我不确定我当前的代码是怎么回事 我的输入数据是两个.csv文件。第一个只有一列,我强制它为data.frame。看起来是这样的(我的数据是很长的时间序列,所以我只显示前10个数据点): “我的其他文件”有多个列,如下所示: X13_EVI X14_EVI X15_EVI X18_EVI 1 1.0492437 0.54155557 -0.58480284 -3.47111922 2 1.7274555 1.4614

我以前处理过R的相关算法,但我不确定我当前的代码是怎么回事

我的输入数据是两个.csv文件。第一个只有一列,我强制它为data.frame。看起来是这样的(我的数据是很长的时间序列,所以我只显示前10个数据点):

“我的其他文件”有多个列,如下所示:

       X13_EVI     X14_EVI     X15_EVI     X18_EVI
1    1.0492437  0.54155557 -0.58480284 -3.47111922
2    1.7274555  1.46141010  0.79416226  1.04050086  
3    1.7274555  1.46141010  0.48772557  1.17721662  
4   -0.1941446 -0.14833532 -0.12514781  0.22020630  
5   -0.1941446 -0.14833532 -0.12514781  0.22020630  
6   -0.5332505 -0.60826258 -0.73802119 -0.73680402 
7   -0.4202152 -0.49328077 -0.12514781 -0.32665674 
8   -0.9853917 -1.29815348 -1.04445787 -0.73680402 
9   -0.3071799 -0.03335350  0.18128888 -0.46337250  
10   0.5971025  1.00148284  1.10059895  0.63035358
当我试着去做

corr=cor(trends, all.obs)
我收到了错误信息

Error in cor(trends, all.obs) : 'x' must be numeric
我不记得以前遇到过这个问题,也不知道是什么原因造成的。在过去,我总是能够计算每个观察到的时间序列(all.obs中的列)和趋势(在本例中为1趋势)之间的相关性。我查过了

> is.numeric(trends)
[1] FALSE
> is.numeric(all.obs)
[1] FALSE
> is.data.frame(all.obs)
[1] TRUE
> is.data.frame(trends)
[1] TRUE
我也有

> typeof(all.obs)
[1] "list"
> typeof(trends)
[1] "list"
因为我有

> trends=as.numeric(trends)
Error: (list) object cannot be coerced to type 'double'

不过,我已经有一段时间没有使用这个工具了,所以可能我遗漏了一些非常明显的内容?

尝试查看
趋势
所有.obs的所有列是否都存储为数字

为此,运行
sappy(趋势,is.numeric)
sappy(all.obs,is.numeric)
。如果在输出中看到任何
FALSE
,则应借助
as.numeric()
函数将其强制为numeric来修复

或者,避免此类问题的更好方法是在读取csv文件时指定列的类型。您可以使用
read.csv
函数中的
colClasses
参数来执行此操作。例如:

trends <- read.csv("PATH_TO_DATA_FOLDER/trends.csv", colClasses = "numeric")
all.obs <- read.csv("PATH_TO_DATA_FOLDER/all_obs.csv", colClasses = rep("numeric", 4))

trends尝试查看
trends
all.obs
的所有列是否存储为数字

为此,运行
sappy(趋势,is.numeric)
sappy(all.obs,is.numeric)
。如果在输出中看到任何
FALSE
,则应借助
as.numeric()
函数将其强制为numeric来修复

或者,避免此类问题的更好方法是在读取csv文件时指定列的类型。您可以使用
read.csv
函数中的
colClasses
参数来执行此操作。例如:

trends <- read.csv("PATH_TO_DATA_FOLDER/trends.csv", colClasses = "numeric")
all.obs <- read.csv("PATH_TO_DATA_FOLDER/all_obs.csv", colClasses = rep("numeric", 4))

trends尝试查看
trends
all.obs
的所有列是否存储为数字

为此,运行
sappy(趋势,is.numeric)
sappy(all.obs,is.numeric)
。如果在输出中看到任何
FALSE
,则应借助
as.numeric()
函数将其强制为numeric来修复

或者,避免此类问题的更好方法是在读取csv文件时指定列的类型。您可以使用
read.csv
函数中的
colClasses
参数来执行此操作。例如:

trends <- read.csv("PATH_TO_DATA_FOLDER/trends.csv", colClasses = "numeric")
all.obs <- read.csv("PATH_TO_DATA_FOLDER/all_obs.csv", colClasses = rep("numeric", 4))

trends尝试查看
trends
all.obs
的所有列是否存储为数字

为此,运行
sappy(趋势,is.numeric)
sappy(all.obs,is.numeric)
。如果在输出中看到任何
FALSE
,则应借助
as.numeric()
函数将其强制为numeric来修复

或者,避免此类问题的更好方法是在读取csv文件时指定列的类型。您可以使用
read.csv
函数中的
colClasses
参数来执行此操作。例如:

trends <- read.csv("PATH_TO_DATA_FOLDER/trends.csv", colClasses = "numeric")
all.obs <- read.csv("PATH_TO_DATA_FOLDER/all_obs.csv", colClasses = rep("numeric", 4))

trends尝试
unlist
将列表变成一个向量。如果不是数字,请将其转换为数字。
cor(cbind(trends,all.obs))
将提供一个相关矩阵,包括
trends
中的一列和
all.obs
中的所有列。这可能是最简单的修复方法。请尝试
取消列表
将列表变成一个向量。如果不是数字,请将其转换为数字。
cor(cbind(trends,all.obs))
将提供一个相关矩阵,包括
trends
中的一列和
all.obs
中的所有列。这可能是最简单的修复方法。请尝试
取消列表
将列表变成一个向量。如果不是数字,请将其转换为数字。
cor(cbind(trends,all.obs))
将提供一个相关矩阵,包括
trends
中的一列和
all.obs
中的所有列。这可能是最简单的修复方法。请尝试
取消列表
将列表变成一个向量。如果不是数字,请将其转换为数字。
cor(cbind(trends,all.obs))
将提供一个相关矩阵,包括
trends
中的一列和
all.obs
中的所有列。这可能是最简单的解决方法。即使提供的解决方案没有解决问题,但它会引导我找到解决方案,因此我将接受它作为答案。通过使用colClasses(这会产生错误,因此会进行更多的调查),我发现.csv文件中有一个“不完整的最后一行”(这是一个由R生成的文件-所以现在我知道这可能是个问题!)使用colClasses=“numeric”,工作起来很有魅力,谢谢:-),尽管提供的解决方案没有解决问题,它引导我找到解决方案,所以我将接受它作为一个答案。通过使用colClasses(这会产生错误,因此会进行更多的调查),我发现.csv文件中有一个“不完整的最后一行”(这是一个由R生成的文件-所以现在我知道这可能是个问题!)使用colClasses=“numeric”,工作起来很有魅力,谢谢:-),尽管提供的解决方案没有解决问题,它引导我找到解决方案,所以我将接受它作为一个答案。通过使用colClasses(这会产生错误,因此会进行更多的调查),我发现.csv文件中有一个“不完整的最后一行”(这是一个由R生成的文件-所以现在我知道这可能是个问题!)使用colClasses=“numeric”,工作起来很有魅力,谢谢:-),尽管提供的解决方案没有解决问题,它引导我找到解决方案,所以我将接受它作为一个答案。通过使用colClasses(这会产生错误,因此需要更多的检查),我发现.csv文件中有一个“不完整的最后一行”(这是一个fil文件)