R会自动删除'。'来自data.frame列名?

时间:2015-07-14 06:55:04

标签: r

d1 $ patient .... age = d1 $ patient .... age?

我猜这些是一个导致这种行为的简单概念。 这是一种可预测的可靠行为吗? 即:如果我将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"

1 个答案:

答案 0 :(得分:4)

R' $运算符接受列名称的任何明确前缀作为引用该列。它与.无关。

例如,尝试:

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

无论列名称中是否有点,都是如此:mtcars$dispmtcars$dismtcars$di都返回disp的{​​{1}}列数据集。 (但是,mtcars会返回mtcars$d,因为NULLdisp列都以drat开头。