2015-07-14 5 views
0

делает d1 $ пациент .... возраст = d1 $ пациент .... возраст?R автоматически удаляет '.' из имен столбцов data.frame?

Я предполагаю, что это простая концепция, которая вызывает такое поведение. Является ли это надежным поведением, которое предсказуемо? ie: если я называю столбец data.frame a ... b, я могу всегда ссылаться на него на $ a?

Пример, приведенный в источнике не объясняет, что я вижу в R.

из http://biostat.mc.vanderbilt.edu/wiki/pub/Main/SvetlanaEdenRFiles/regExprTalk.pdf

d1 = data.frame(id...of....patient = c(1, 2), patient....age = c(3, 4)) 
d1$patient....age 
#[1] 3 4 
d1$patient 
#[1] 3 4 
d1$age 
#NULL 
d1$id...of....patient 
#[1] 1 2 
d1$id 
#[1] 1 2 
d1$id...of 
#[1] 1 2 
names(id) 
#NULL 
names(d1) 
#[1] "id...of....patient" "patient....age" 

ответ

4

оператора АиР $ принимает любой однозначный префикс имени столбца в виду, что колонка. Это не имеет никакого отношения к . s.

Например, попробуйте:

d1$id...of....patient 
# [1] 1 2 
d1$id...of....pati 
# [1] 1 2 
d1$id...o 
# [1] 1 2 

Это верно ли или нет есть точки в имени столбца: mtcars$disp, mtcars$dis и mtcars$di все вернуть disp столбец mtcars данных. (Однако mtcars$d возвращает NULL, так как оба столбца disp и drat начинаются с d).

Смежные вопросы