gpt4 book ai didi

r - 'x' 必须是数值向量 : Error from data. 数字框

转载 作者:行者123 更新时间:2023-12-04 11:32:36 26 4
gpt4 key购买 nike

我在文件/表中的两列上运行 cor.test。

tmp <- read.table(files_to_test[i], header=TRUE, sep="\t")
## Obtain Columns To Compare ##
colA <-tmp[compareA]
colB <-tmp[compareB]
# sctr = 'spearman cor.test result'
sctr <- cor.test(colA, colB, alternative="two.sided", method="spearman")

但是我遇到了这个令人困惑的错误...

Error in cor.test.default(colA, colB, alternative = "two.sided", method = "spearman") : 
'x' must be a numeric vector

列中的值是数字,但是

is.numeric(colA) = FALSE 
class (colA) = data.frame

我错过了什么?

最佳答案

在选择器前加一个逗号。当您在 data.frame 对象中选择没有逗号的单个索引变量时,它会提取列作为列表元素保留类型。因此,它仍然是一个数据框。但是,data.frame 对象允许您使用矩阵样式符号进行选择,然后您将获得一个简单的向量。所以只要改变

colA <-tmp[compareA]
colB <-tmp[compareB]

colA <-tmp[,compareA]
colB <-tmp[,compareB]

我认为这比双括号 ([[) 选择器更符合 data.frame 类型的精神,后者会做类似的事情,但本着底层列表类型的精神。它们也与单个项目和行选择器无关。因此,在使用 data.frame 执行多种操作的代码中,双括号选择器显得有点奇怪。

关于r - 'x' 必须是数值向量 : Error from data. 数字框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652185/

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