【发布时间】:2018-05-10 11:13:53
【问题描述】:
我有一个包含 120 个观察值和 10 个变量的数据框。我有一行代码用于对其进行子集化以仅提取某些特定行
df_reduc_expr <- which(df$Speciestreat != 'Bac + Junc')
df_reduc <- df[df_reduc_expr,]
它一直在工作,直到它停止并开始抛出错误
Error: Column indexes must be at most 1 if positive, not 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105
如果我在逗号后面加上一些数字,就好像我也在要求列的子集一样,错误就会停止。但是,只要我留下用于提取所有列的表达式,它似乎就会与行混淆并引发错误。
我什至不知道从哪里开始寻找这种行为的原因。
版本:
- 矩阵包 1.2-14。我认为唯一可能会造成混乱的是我必须手动安装它(使用 RStudio 和 .tar.gz),因为我的版本使用的是 1.2-6,而我需要一个更新的版本来安装脚本的其他部分。不知道会不会有影响。
- RStudio 1.0.136
有什么想法吗?
【问题讨论】:
-
请在这个问题中添加示例数据来演示问题。我没有发现任何问题,但您的数据可能有问题。
-
也许你可以重启 RStudio 看看错误是否消失。
-
RStudio 只是一个 IDE,所以版本无关紧要,它不可能导致这个子集错误。但是,您的 R 版本和 Matrix 等软件包非常相关。您是否更新了任何其他软件包? (有时它们会作为另一个包的依赖项进行更新)
-
使用
dput(df)或str(df)向我们展示您的数据框的结构,以及可重复数据的sn-p(随机种子数据很好)。