Повторять по столбцам данных - PullRequest
6 голосов
/ 18 января 2012

Я хочу применить статистику к столбцам кадра данных итеративным способом:

столбцы номер 1: «A» представляет теги, которые я хочу различить:

for (i in names(dataframe)) {
    i <- as.name(i)
    group1 <- i[A=="locationX"]
    group2 <- i[A!="locationX"]
    p <- wilcox.test(group1,group2,na.action(na.omit))$p.value
}

однако as.name() должен попытаться удалить кавычки из имен столбцов, сгенерированных names(dataframe).

К сожалению, это дает мне ошибку:

Ошибка в i [A == "locationX"]: объект типа 'symbol' не может быть подмножеством

Я думаю, as.name() не является правильным способом сделать это.

Есть какие-нибудь подсказки?

1 Ответ

9 голосов
/ 18 января 2012

Это имеет смысл только в том случае, если для «A» используется вектор с несколькими экземплярами «locationX» и для нескольких экземпляров обратного и для длины «A».msgstr "быть таким же как количество строк в" dataframe ".Если это так, то может сработать что-то вроде этого:

p <- list()
for (i in names(dataframe)) {
   # using as.names not needed and possibly harmful
    group1 <- dataframe[[i]][A == "locationX"]
    group2 <- dataframe[[i]][A != "locationX"]
    p[i] <- wilcox.test(group1,group2,na.action(na.omit))$p.value
}

Обратите внимание, что даже если вы не получили ошибку в своем коде, вы бы все равно перезаписывали «p» каждый раз через цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...