R таблица данных вопроса - PullRequest
0 голосов
/ 12 июля 2011

У меня проблемы с работой с таблицей данных в R. Возможно, это что-то действительно простое, но я нигде не могу найти решение.

Вот что у меня есть: Допустим, т это таблица данных

colNames <- names(t)
for (col in colNames) {
    print (t$col)
}

Когда я делаю это, он печатает NULL. Однако, если я делаю это вручную, он работает нормально - скажем, имя столбца «образец». Если я наберу t $ "sample" в приглашении R, он будет работать нормально. Что я тут не так делаю?

1 Ответ

5 голосов
/ 12 июля 2011

Вам нужно t[[col]];t$col выполняет нечетную форму оценки.

edit : включение объяснения @ joran:

t$col пытается найти элемент, буквально названный 'col' в спискеt, а не то, что вы сохранили как значение в переменной с именем col.

  • $ удобно для интерактивного использования, поскольку оно короче и пропустить кавычки(т. е. t$foo против t[["foo"]]. Также выполняется частичное сопоставление , что очень удобно, но в необычных обстоятельствах может быть опасным или запутанным: т. е. если список содержит элемент foolicious, то t$foo получит его. По этой причине он не , как правило, рекомендуется для программирования.
  • [[ может принимать либо буквенную строку ("foo"), либо строку, хранящуюся в переменной(col) и не выполняет частичное сопоставление. Обычно рекомендуется для программирования (хотя использование интерактивно не вредно).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...