Разница между "данными" и "значениями" в R

Недавно я перешел с STATA на R. Я использую RSTudio в качестве моей IDE. Я обнаружил, что некоторые из моих переменных входят в раздел "Данные" в RStudio, а некоторые входят в "Значения". Они находятся в окне "Окружающая среда". Я немного искал эту информацию и обнаружил, что в R есть какая-то большая концепция, которой я не хватает. Какая разница между "данными" и "ценностями"? Будет здорово, если кто-нибудь сможет опубликовать пример, когда переменная перейдет в раздел "Данные", и когда она перейдет в раздел "Значения".

Здесь ссылка, на которую я ссылаюсь: https://support.rstudio.com/hc/en-us/community/posts/202201648-What-is-the-difference-between-Data-and-Values-in-the-Environment-pane-

Буду признателен за любые мысли.

Ответ 1

Вам не хватает "основной концепции в R". Что вам не хватает, так это то, что RStudio выбрал по своим собственным соображениям (думая, что это помогает пользователям, без сомнения) отделить данные от других объектов, таких как списки без класса data.frame. В R нет класса "Данные" или "Значения" , и вы не найдете этого различия в руководствах R. Этот RStudio работает, а не часть R. Когда я читаю Jonathon-ответ на упомянутый вопрос, я предполагаю, что решение основано на том, имеет ли объект R атрибут измерения, так как он говорит, что матрицы и фрейм также будут перечислены в "Значения" . Я думаю, что более точная маркировка будет "Измеренные объекты" и "Нестандартные, неязычные объекты". Я был немного удивлен тем, что списки отображаются, но атомные векторы не являются (вопреки Джонатону). Может быть, есть переключатель, который можно выбросить где-нибудь, чтобы отображать имена атомных векторов в этой панели?

Это относится к разделу данных:

dat <- data.frame(a=1:10, b=letters[1:10])

И это переместит его в раздел "Значения" :

dat <- unclass(dat)

Я признаю, что были моменты, когда я хотел эту информацию и (в конечном итоге) получил ее, выполнив что-то вроде этого:

> ls()[ lapply( mget( ls() ) , class) == "data.frame" ]
[1] "air1"   "air2"   "dat"    "df"     "dfCord" "fsub"   "mtcars" "test"  

Ответ 2

Это чисто разница в RStudio. Объекты данных - это объекты S4, среды и объекты с измерениями. Там может быть больше, это те немногие, которые я нашел до сих пор. Объекты 'Value' - это объекты, которые не являются ни функциями, ни объектами 'Data'.

Редактировать: При дальнейшей проверке создается впечатление, что "Значения" в RStudio являются атомарными объектами без менее чем двух измерений. Надеюсь, это поможет.