0

我在 R 中有一个数据集,我使用 googlesheets4 包从 googledrive 导入该数据集

dat <- read_sheet("url")

这似乎正确导入。检查该类表明它是一个 tbl_df

> class(dat)
[1] "tbl_df"     "tbl"        "data.frame"

但是,当我尝试对不同的列进行子集化时,会出现各种错误。

首先我尝试使用正常的子集命令,结果如下

> dat1 <- dat[165:300]
Error: Positive column indexes in `[` must match number of columns:
* `.data` has 175 columns
* Position 12 equals 176
* Position 13 equals 177
* Position 14 equals 178
* Position 15 equals 179
* ... and 121 more problems

接下来我尝试调用实际的列名,这导致了一个不同的错误(我仔细检查了,这些肯定是列的名称)。

> dat1 <- dat[agency1:Like_9]
Error in check_names_df(i, x) : object 'agency1' not found

然后我尝试将整个数据集转换为数据框,这很有效

> dat1 <- as.data.frame(dat)
> class(dat1)
[1] "data.frame"

但是,使用列名进行子集返回相同的错误

> dat1 <- dat[agency1:Like_9]
Error in `[.data.frame`(dat, agency1:Like_9) : object 'agency1' not found

使用列号进行子集返回不同的错误

> dat1 <- dat[165:300]
Error in `[.data.frame`(dat, 165:300) : undefined columns selected

数据框发生了什么?我试图子集的所有变量都是数字的,尽管数据集中有非数字变量。我不确定错误是由于我如何导入数据,还是因为数据集包含不同类型的变量。我对 R 比较陌生,所以任何指导表示赞赏:)

4

0 回答 0