我已经使用R很长一段时间了,并用它来完成我硕士论文的所有统计数据。在完成论文之前,我还有一件事要做,我无法弄清楚为什么R会给我这个代码。
我正在尝试进行Spearman相关测试,并将一个CSV文件附加到RStudio中。这是我输入的代码,以及R给我的错误:
littersize=read.csv(file.choose())
littersize
cor.test(littersize, progesterone, method = "spearman")
cor.test.default出错(littersize,孕酮,方法= " spearman"):对象'黄体酮'找不到
我之前已经获得了这些代码,并且能够在没有太多问题的情况下修复它,但由于某种原因它只是无法正常工作。我检查了拼写,我已经检查了CSV文件中的错误,我已经做了我能想到的一切。任何人都可以帮我弄清楚R要我做什么?谢谢!
答案 0 :(得分:0)
基于上面的代码(并且完全没有任何数据),很难说。
但是,您将 未附加 对象littersize
放入rStudio工作区。
已在您的工作环境中加载 数据框,并为其指定名称littersize
。
如果您使用
search()
你会看到你所附的一切清单;库,工具,您的GlobalEnv ... 如果 "littersize"
不在那里它没有附加。 强>
这意味着您无法直接在其中处理列。
因此,如果progesterone
是littersize
的列,那么您必须使用其中一种可接受的方法:
littersize$progesterone
或
with(littersize, cor.test(progesterone, x, method="spearman"))
此处progesterone
和x
是您要测试相关性的两个字段,如果您打算以这种方式解决这两个字段,则这两个字段应位于数据框littersize
中。目前尚不清楚您的代码中是否有两个单独的字段要比较(一个名为littersize
和一个progesterone
,两者都在对象littersize
中,或者您是否加载{{1}分开而不是说或你是否正在关联一个变量?)。
如果他们在不同的框架中,您必须明确地称他们为:
progesterone
或者附加两个对象并使用cor.test(littersize$progesterone, otherframe$x, method="spearman")
进行验证并直接使用字段名称
如果文件实际上是search()
且其中一列也是littersize
,那么使用附加的寻址可能会出现问题,因为您将附加两个相同名称的对象,框架和列...在这种情况下,您应明确要求littersize
列。
$
或者您可以重命名附件,并且您需要分离littersize$littersize
,因为附加对象的更改在附加时不会发生。您只需添加带有新名称的第二个副本,原始名称仍然挥之不去,导致问题。
littersize
通常,最好不要附加文件,而是使用具有适当数据帧寻址的数据帧。如果可以的话,创建命名范例,这有助于避免在存在冗余时出现问题,例如:
detach(littersize)
字段/列/变量名称是小写的,点缀或下划线:
Littersize
或litter_size
或littersize
环境中的对象始终使用camelCase:litter.size
如果您对如何选择和使用名称保持一致,那么您可以在附加对象中使用冗余并完成它,但是使用数据框并完全避免问题可能更好。