请原谅我这个问题的基本性,但是我不能一生将我的数据集强制为一个数据框。我是R的新手,但曾经使用其他语言(VBA和Matlab)工作。
我的数据ds <- read_excel("Sample Data.xlsx")
以列表形式拉入R,并通过进行了检查typeof(ds)
。我试图使用强制将列表转换为数据框,df <- as.data.frame(ds)
但这也不起作用。样本数据集很简单(4个变量,每个变量有5个观察值),并存储在Excel电子表格中。我正在RStudio中工作,我加载的唯一软件包是readxl。
我问过同事并进行了很多搜索,但可能是我的问题措辞不正确。
编辑为了回应评论,我检查了df和ds的类。class(df)
返回“ data.frame”并class(ds)
返回"tbl_df "tbl" "data.frame
。
但是,即使df仍然表现为列表。typeof(df[1])
返回“列表”,而应typeof(df[[1]])
返回“双精度”。因此,我需要使用的功能无法正常工作。
cor.test(df[1], df[2]) # returns Error in cor.test.default(df[1], df[2]) : 'x' must be a numeric vector
但是,下面的代码给了我我所需要的。
cor.test(df[[1]], df[[2]]) # returns an r = .29, among other stats
我认为您正确地获得了数据帧。read_excel()
包中的函数readxl
应返回小标题,这是数据帧的一种特殊类型。(并且,如果您不提供工作表名称,则仅获取第一张工作表,并返回小标题。)
Tibble的类型为list,类似于数据帧。在内置数据框中检查此内容mtcars
:
typeof(mtcars)
要获得对象的类,请键入,class(ds)
然后您将看到它是一个数据框和一个小标题。因此,您应该能够像处理数据框架一样使用它,不用担心。
要引用其行或列,只需df[rows, columns]
针对您的情况键入以下内容:
cor.test(df[ ,1], df[ ,2])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句