我有一个名为alldataless的数据框,由脚本生成。
> dim(alldataless)
[1] 180 68
> str(alldataless)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 180 obs. of 68 variables:
$ subject : int 1 1 1 1 1 1 2 2 2 2 ...
$ activityLabel : Factor w/ 6 levels "LAYING","SITTING",..: 1 2 3 4 5 6
我希望能够运行以下命令,但是我收到错误:
alldataless [2]
Error: index out of bounds
我认为这与数据框中使用的分组有关,但我仍然无法弄清楚我需要运行什么命令。
此外,更明确的选择也无济于事。这里它返回有关数据框中每一列的信息:
> alldataless[alldataless$activityLabel]
Source: local data frame [180 x 180]
Groups: subject
subject activityLabel tBody_Acc_Mean_X tBody_Acc_Mean_Y tBody_Acc_Mean_Z
1 1 LAYING 0.2215982 -0.040513953 -0.1132036
2 1 SITTING 0.2612376 -0.001308288 -0.1045442
3 1 STANDING 0.2789176 -0.016137590 -0.1106018
4 1 WALKING 0.2773308 -0.017383819 -0.1111481
5 1 WALKING_DOWNSTAIRS 0.2891883 -0.009918505 -0.1075662
6 1 WALKING_UPSTAIRS 0.2554617 -0.023953149 -0.0973020
7 2 LAYING 0.2813734 -0.018158740 -0.1072456
8 2 SITTING 0.2770874 -0.015687994 -0.1092183
9 2 STANDING 0.2779115 -0.018420827 -0.1059085
10 2 WALKING 0.2764266 -0.018594920 -0.1055004
.. ... ... ... ... ...
Variables not shown: tBody_Acc_Std_X (dbl), subject (int), activityLabel (fctr),
我的最终目标是能够毫无错误地删除此列和其他列:
alldataless [, - c(alldataless $ activityLabel)]
Error: index out of bounds
答案 0 :(得分:3)
这似乎是由' dplyr'中的功能创建的对象。包。例如,Indexing grouped_df object中的问题有类似错误的报告,但其他人(包括我)无法复制。来自@CephBirk的答案并没有多大意义,因为您发布的材料表明它已经有了一个' data.frame'类。我认为这可能是一个仅限于dplyr和R的一个或多个平台或版本的错误。您需要发布一个可重现的示例,例如引用的示例。它似乎不存在于0.2.0版本中,但也许更高版本的dplyr引入了一个bug。试试引用的例子:
# With version 2.0
x <- mtcars %>% group_by(am, gear) %>%
summarise_each(funs(sum), disp, hp, drat)
class(x)
> x[,2]
[1] 3 4 4 5
答案 1 :(得分:1)
如果您先将其转换为data.frame
,那么它将起作用:
as.data.frame(alldataless)[,2]
或者按照建议:
as.data.frame(alldataless)[,'activityLabel']
答案 2 :(得分:1)
当我使用tidyverse包时,会发生这种情况,尝试
ungroup(alldataless)
适合我。