Я пытаюсь построить rowMeans для подмножества столбцов таблицы данных.Код работает, если используется фрейм данных, но не как таблица данных.Зачем?
Минимальный пример - приведенный ниже код не производит вывод 10x10:
IDnum <- c(101:110)
Name <- LETTERS[seq( from = 1, to = 10 )]
minExample <- as.data.table(replicate(10,sample(0:5,10,rep=TRUE)))
minExample <- cbind(IDnum, Name, minExample)
grep("V",names(minExample))
#-- Intermediate output omitted
minExample[ , grep("V", names(minExample))]
[1] 3 4 5 6 7 8 9 10 11 12
Но это дает правильный вывод (10x10):
minExample[ , 3:12]
Однакопреобразование во фрейм данных снова приводит к ожидаемому поведению:
minExample2 <- as.data.frame(minExample)
grep("V", names(minExample2))
minExample2[ , grep("V",names(minExample2))]
Row V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 2 3 5 5 1 3 2 1 3 1
2 4 3 0 1 5 3 0 5 2 3
3 1 2 0 2 2 4 4 0 4 0
4 3 4 5 4 0 0 2 0 0 3
5 2 2 4 4 5 2 1 4 2 2
6 5 3 3 1 1 2 0 5 1 4
7 4 2 2 0 3 1 4 0 5 1
8 0 4 3 2 2 2 2 0 3 5
9 4 3 3 5 4 1 2 0 5 0
10 5 5 0 3 4 4 0 0 1 5
Почему расхождение?